AVL树的构造实现

这篇博客介绍了AVL树的基本概念和构建原理。AVL树是一种平衡二叉查找树,通过限制左右子树的高度差不超过1来保证高效的查找、插入和删除操作。文章提到了AVL树与排序二叉树的区别,强调了维持动态平衡的重要性,并提到使用旋转操作进行平衡调整。此外,作者还分享了在学习AVL树过程中对链表理解的加深以及编程风格的改变。

今天接触的是平衡二叉查找树,对于AVL树来说相比之前的数据结构稍微多了一些需要注意的地方,照例在此总结总结让自己巩固一二。

首先是使用AVL树的动机

我们知道AVL树本质上是排序二叉树的一类特例,回顾一下,对于排序二叉树的定义考虑使用归纳定义:


①、空树是二叉查找树

②、若p和q都是二叉查找树,而root是一个“关键字大于p上所有结点的关键字,并小于q上所有结点的关键字”的元素,则以root为根结点,p为左子树,q为右子树构成的二叉树是二叉查找树


所以对于排序二叉树来说,有可能会出现这样一种情况:


此时的排序二叉树和单链表以及没有什么区别(极可能造成更大的内存浪费),而我们所期望的排序二叉树的形态应该是这样的:


评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值