AVL树 川长思鸟来 2024-04-18 22:41 53阅读 0赞 ### 以后在有面试官问你AVL树,你就把这篇文章扔给他。 ### 作者:帅地 来源 |网络整理,版权归原作者所有,侵删。 背景 西天取经的路上,一样上演着编程的乐趣..... ![format_png][] ![format_png 1][] ![format_png 2][] ![format_png 3][] ![format_png 4][] 1、若它的左子树不为空,则左子树上所有的节点值都小于它的根节点值。 2、若它的右子树不为空,则右子树上所有的节点值均大于它的根节点值。 3、它的左右子树也分别可以充当为二叉查找树。 例如: ![format_png 5][] ![format_png 6][] ![format_png 7][] 例如,我现在想要查找数值为14的节点。由于二叉查找树的特性,我们可以很快着找到它,其过程如下: 1、和根节点9比较 ![format_png 8][] 2、由于 14 > 9,所以14只可能存在于9的右子树中,因此查看右孩子13 ![format_png 9][] 3、由于 14 > 13,所以继续查看13的右孩子15 ![format_png 10][] 4、由于 14 < 15,所以14只可能存在于15的左孩子中,因此查找15的左孩子14 ![format_png 11][] 5、这时候发现14正是自己查找的值,于是查找结束。 这种查找二叉树的查找正是**二分查找**的思想,可以很快着找到目的节点,查找所需的最大次数等同于二叉查找树的高度。 在插入的时候也是一样,通过一层一层的比较,最后找到适合自己的位置。 ![format_png 12][] ![format_png 13][] ![format_png 14][] 初始的二叉查找树只有三个节点: ![format_png 15][] 然后我们按照顺序陆续插入节点 4,3,2,1,0。插入之后的结构如下: ![format_png 16][] ![format_png 17][] ![format_png 18][] ![format_png 19][] ![format_png 20][] ![format_png 21][] ![format_png 22][] 这是一种比查找二叉树还特别的树哦,这种树就可以帮助我们解决二叉查找树刚才的那种所有节点都倾向一边的缺点的。具有如下特性: 1. 具有二叉查找树的全部特性。 2. 每个节点的左子树和右子树的高度差至多等于1。 例如:图一就是一颗AVL树了,而图二则不是(节点右边标的是这个节点的高度)。 ![format_png 23][] ![format_png 24][] 对于图二,因为节点9的左孩子高度为2,而右孩子高度为0。他们之间的差值超过1了。 这种树就可以保证不会出现大量节点偏向于一边的情况了。 ![format_png 25][] 听起来这种树还不错,可以对于图1,如果我们要插入一个节点3,按照查找二叉树的特性,我们只能把3作为节点4的左子树插进去,可是插进去之后,又会破坏了AVL树的特性,那我们那该怎么弄? ![format_png 26][] **右旋** 我们在进行节点插入的时候,可能会出现节点都倾向于左边的情况,例如: ![format_png 27][] 我们把这种倾向于左边的情况称之为**左-左型**。这个时候,我们就可以对节点9进行**右旋操作**,使它恢复平衡。 ![format_png 28][] **即:顺时针旋转两个节点,使得父节点被自己的左孩子取代,而自己成为自己的右孩子** 再举个例子: ![format_png 29][] 节点4和9高度相差大于1。由于是**左孩子的高度较高**,此时是**左-左型**,进行右旋。 ![format_png 30][] **这里要注意,节点4的右孩子成为了节点6的左孩子了** 我找了个动图,尽量这个动图和上面例子的节点不一样。 ![aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzJmYzI4YWVlM2I2YTQ4OGViMzE5YjBjODJiNjRmNWZjLmdpZg][] **左旋** 左旋和右旋一样,就是用来解决当大部分节点都偏向右边的时候,通过左旋来还原。例如: ![format_png 31][] 我们把这种倾向于右边的情况称之为**右-右型**。 我也找了一张动图。 ![aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzExZmFiODYxMzU4ZjRkN2M5N2YxZTgwNDczMTg0MmE1LmdpZg][] **例子讲解** ![format_png 32][] ![format_png 33][] 初始状态如下: ![format_png 34][] 然后我们主键插入如下数值:1,4,5,6,7,10,9,8 插入 1 ![format_png 35][] 左-左型,需要右旋调整。 ![format_png 36][] 插入4 ![format_png 37][] 继续插入 5 ![format_png 38][] 右-右型,需要左旋转调整。 ![format_png 39][] 继续插入6 ![format_png 40][] 右-右型,需要进行左旋 ![format_png 41][] 继续插入7 ![format_png 42][] 右-右型,需要进行左旋 ![format_png 43][] 继续插入10 ![format_png 44][] 继续插入9 ![format_png 45][] 出现了这种情况怎么办呢?对于这种 **右-左型**的情况,单单一次左旋或右旋是不行的,下面我们先说说如何处理这种情况。 ![format_png 46][] 这种我们就把它称之为**右-左 型**吧。处理的方法是**先对节点10进行右旋把它变成右-右型。** ![format_png 47][] 然后在进行左旋。 ![format_png 48][] 所以对于这种**右-左型的,我们需要进行一次右旋再左旋**。 同理,也存在**左-右型**的,例如: ![format_png 49][] 对于左-右型的情况和刚才的 右-左型相反,我们需要对它进行一次左旋,再右旋。 ![format_png 50][] 回到刚才那道题 ![format_png 51][] 对它进行右旋再左旋。 ![format_png 52][] 到此,我们的插入就结束了。 ![format_png 53][] ![format_png 54][] **总结一下** 在插入的过程中,会出现一下四种情况破坏AVL树的特性,我们可以采取如下相应的旋转。 1、左-左型:做右旋。 2、右-右型:做左旋转。 3、左-右型:先做左旋,后做右旋。 4、右-左型:先做右旋,再做左旋。 不知道大家发现规律没,这个规则还是挺好记。 ![format_png 55][] ![format_png 56][] ![format_png 57][] ![format_png 58][] 代码如下: //定义节点 classAvlNode{ intdata; AvlNode lchild; //左孩子 AvlNode rchild; //右孩子 intheight; //记录节点的高度 } //在这里定义各种操作 publicclassAVLTree{ //计算节点的高度 staticintheight(AvlNode T) { if(T == null) { return-1; } else{ returnT.height; } } //左左型,右旋操作 staticAvlNode R_Rotate(AvlNode K2) { AvlNode K1; //进行旋转 K1 = K2.lchild; K2.lchild = K1.rchild; K1.rchild = K2; //重新计算节点的高度 K2.height = Math.max(height(K2.lchild), height(K2.rchild)) + 1; K1.height = Math.max(height(K1.lchild), height(K1.rchild)) + 1; returnK1; } //进行左旋 staticAvlNode L_Rotate(AvlNode K2) { AvlNode K1; K1 = K2.rchild; K2.rchild = K1.lchild; K1.lchild = K2; //重新计算高度 K2.height = Math.max(height(K2.lchild), height(K2.rchild)) + 1; K1.height = Math.max(height(K1.lchild), height(K1.rchild)) + 1; returnK1; } //左-右型,进行右旋,再左旋 staticAvlNode R_L_Rotate(AvlNode K3) { //先对其孩子进行左旋 K3.lchild = R_Rotate(K3.lchild); //再进行右旋 returnL_Rotate(K3); } //右-左型,先进行左旋,再右旋 staticAvlNode L_R_Rotate(AvlNode K3) { //先对孩子进行左旋 K3.rchild = L_Rotate(K3.rchild); //在右旋 returnR_Rotate(K3); } //插入数值操作 staticAvlNode insert(intdata, AvlNode T) { if(T == null) { T = newAvlNode(); T.data = data; T.lchild = T.rchild = null; } elseif(data < T.data) { //向左孩子递归插入 T.lchild = insert(data, T.lchild); //进行调整操作 //如果左孩子的高度比右孩子大2 if(height(T.lchild) - height(T.rchild) == 2) { //左-左型 if(data < T.lchild.data) { T = R_Rotate(T); } else{ //左-右型 T = R_L_Rotate(T); } } } elseif(data > T.data) { T.rchild = insert(data, T.rchild); //进行调整 //右孩子比左孩子高度大2 if(height(T.rchild) - height(T.lchild) == 2) //右-右型 if(data > T.rchild.data) { T = L_Rotate(T); } else{ T = L_R_Rotate(T); } } //否则,这个节点已经在书上存在了,我们什么也不做 //重新计算T的高度 T.height = Math.max(height(T.lchild), height(T.rchild)) + 1; returnT; } } [format_png]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2EyZjUwN2MxOTcwYTQ2NmNiNjRkOGI5M2EwOWQwZTFiLnBuZw?x-oss-process=image/format,png [format_png 1]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzI3M2Q5NmM2NDcyYjQ2NTRhZWM2MWJkZDk1OGE5MWU1LmpwZWc?x-oss-process=image/format,png [format_png 2]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzhjMGE4N2Y5ODUzNzQxMTg5YmU5NTgyNTQxMmMzMTIzLmpwZWc?x-oss-process=image/format,png [format_png 3]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2VhYTc4NTY3ZGIyOTRiZjliYmNkNTEyZTJiYTJmYzM5LmpwZWc?x-oss-process=image/format,png [format_png 4]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzA4NGRlOGU5NjliMDQ3ZWRhMzMxNmE5ODZiODlmNmQyLmpwZWc?x-oss-process=image/format,png [format_png 5]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzlmYWFkNzA3YWU2YzRhYzc4Y2IzMTNkMjhhZDFiZDYwLmpwZWc?x-oss-process=image/format,png [format_png 6]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2QzNmFiNDkyYTIyOTQyNTA5ODJjY2ViYzQzNjVkOGMxLmpwZWc?x-oss-process=image/format,png [format_png 7]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2M5ZGI3MjZjMWZiMTRmNjRiOTk2MjQyYjIyOGI2NmEyLmpwZWc?x-oss-process=image/format,png [format_png 8]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2QxMTFlN2M5ZWI3OTQ4NmQ5YjE4ZGFkNjhkZjMyNjE3LmpwZWc?x-oss-process=image/format,png [format_png 9]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzhjNmIzN2VhZWY2NzRmNzNhNDJkMTIzM2Y5NjFmOWNlLmpwZWc?x-oss-process=image/format,png [format_png 10]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2Q5MjE0N2JkOWRhNDRkNTlhOWI1MjhkNzU1NTE1MDkxLmpwZWc?x-oss-process=image/format,png [format_png 11]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2ZiZDJiNDNjOWVlNjQ4ODE5NmQwN2UxNGEyZGFlYzdjLmpwZWc?x-oss-process=image/format,png [format_png 12]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzczZDcwOTNhNjVjNDQ5Nzc4Mzk2ZTQxZGJjYWRiM2E0LmpwZWc?x-oss-process=image/format,png [format_png 13]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzQ1ZWJhMzYzNzM3YTRjNGI5NjgyNTFhOGNiODBmZjVkLmpwZWc?x-oss-process=image/format,png [format_png 14]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzI5NWU5YWEyYzk4NjQ4MmM5YjgxYTY3YzAyNmYxZjcyLmpwZWc?x-oss-process=image/format,png [format_png 15]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2Y2ZWE2MWM4MmJlMDQ5YTlhZjYzOTJlZDYxY2U4NjYxLnBuZw?x-oss-process=image/format,png [format_png 16]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2EyYzE4YzY1OTM2ZTQ1MzE4YjViMjY2MGZhY2U5MTlkLmpwZWc?x-oss-process=image/format,png [format_png 17]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2JkY2FlOWFjNTQ5MjQ3ZjI5NWIzYmIxZWRmMThjY2I4LmpwZWc?x-oss-process=image/format,png [format_png 18]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzBmZmYwOTE0OWI5NjQxYTc4NjhlOWQwYWEwZWZiMzA2LmpwZWc?x-oss-process=image/format,png [format_png 19]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2M0YzExZDhlMzg1YTQzYjk5MGM1NThhMTU0NDM2NWJjLmpwZWc?x-oss-process=image/format,png [format_png 20]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzgwMzgzNmI4MWEzMDRmMDhhNzBlZDRkN2FiYmU2ZDM3LmpwZWc?x-oss-process=image/format,png [format_png 21]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzIwNDhjMjVmZTFlNjQ3OTdiYTQxYjFmMzI4ZDIyYmVkLmpwZWc?x-oss-process=image/format,png [format_png 22]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzZkYzQ0YTFmNWJjYzRjZDRiNjlkMzcyNTgzYzJlZjk1LmpwZWc?x-oss-process=image/format,png [format_png 23]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2MxYzBiZWU3NzE5ZTRjZTRhYjI5ZTJlNzA2ZDk2MzY1LnBuZw?x-oss-process=image/format,png [format_png 24]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzAyNWYxM2QxOWVmYjQxOGU4N2FmOGQxYjEzYzhiYjQzLnBuZw?x-oss-process=image/format,png [format_png 25]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzdhNmViYmFjNmQ4NjQ4ZjE5ZjBlMWRhMDlhNmJlODhkLmpwZWc?x-oss-process=image/format,png [format_png 26]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzRlNTkwMzI1NWU1ZDQxMDNiMmJmNDBkYjY4NDVlZDA4LmpwZWc?x-oss-process=image/format,png [format_png 27]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzVjZDQ0Njg4MTQwNzQzZjZhNTQ1ZDkxYzdjZDMyODAzLnBuZw?x-oss-process=image/format,png [format_png 28]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2M2ODdhN2M5ZWEzNTRlNThhYTMwMjczNDRhNzAzNDkxLnBuZw?x-oss-process=image/format,png [format_png 29]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzViMjM4NzU5OGNkNjQwNGU4MmRmMTAyMTYzYjA5NjAxLnBuZw?x-oss-process=image/format,png [format_png 30]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzY0YWQwNTFmYmZjMDRjMDE4MjdiNjNlZGM0NGI2OTRjLmpwZWc?x-oss-process=image/format,png [aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzJmYzI4YWVlM2I2YTQ4OGViMzE5YjBjODJiNjRmNWZjLmdpZg]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzJmYzI4YWVlM2I2YTQ4OGViMzE5YjBjODJiNjRmNWZjLmdpZg [format_png 31]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzViNDMxNThkN2ZiNDQyM2Q5MGEyZjUwNjhhMzNlZGUzLmpwZWc?x-oss-process=image/format,png [aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzExZmFiODYxMzU4ZjRkN2M5N2YxZTgwNDczMTg0MmE1LmdpZg]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzExZmFiODYxMzU4ZjRkN2M5N2YxZTgwNDczMTg0MmE1LmdpZg [format_png 32]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzc2YjE0YTA0ZGYyODRhZDc5N2MyZjBkNDVhY2UxNDIwLmpwZWc?x-oss-process=image/format,png [format_png 33]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzIyM2RjYjM0NGQ2YjQ5OTI4YThlYmE3OGRlOTc4YjI2LmpwZWc?x-oss-process=image/format,png [format_png 34]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2RhYWFlZjgxOWM3ZjQ0NmZiOTM3ODU4MjYxZmRhZWU2LnBuZw?x-oss-process=image/format,png [format_png 35]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzRhZmRhN2Y0MDM3MTQyMDk5YzI4ZGEzNjYxZWI0ZDU0LnBuZw?x-oss-process=image/format,png [format_png 36]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzYwZGQ4MTM4M2M1ZDQ4OTZhZDc1MGNkYjcwZTBhNjc1LnBuZw?x-oss-process=image/format,png [format_png 37]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2I0NDU0YTBmOTY4MTRkZTg5MGY4MmUzZGJkOGUyYzk0LnBuZw?x-oss-process=image/format,png [format_png 38]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzZhNmJlNTY3NzRiZTQ1OWViYjIwMDNmYTg5MDg5ZGJiLnBuZw?x-oss-process=image/format,png [format_png 39]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzNhMTQxZDczYmFlNzQzMmRiNmQ2ZmZmZTg1ZGY1NGNiLmpwZWc?x-oss-process=image/format,png [format_png 40]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2VmN2U4MDA5ZjM5NjQ4NWU5Y2MwMGJhNDhmZDMzMDQyLnBuZw?x-oss-process=image/format,png [format_png 41]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzgwNDVjZDNlYmE0NzQ0ZWViOGE3ZmY2NzBlMGNhNmFmLnBuZw?x-oss-process=image/format,png [format_png 42]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2Q2NGQ0ZGM2ZTg2YzRiM2NhNzU2NmM2OTY1NGQ4NzA2LnBuZw?x-oss-process=image/format,png [format_png 43]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzEwYTI1OWQ5NDUxNDQ2ZTY4OWJjZWQxNmRlYTZlZDY5LmpwZWc?x-oss-process=image/format,png [format_png 44]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2QzMjhhMzgzOWQ3OTQ3ZGY5ZDRjNWI0ZGNlNmQ4ZWNmLnBuZw?x-oss-process=image/format,png [format_png 45]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2Q4NzljMjlkY2EyODRjMGQ5Zjk3Zjc1ZDA4ZmNjNGI2LnBuZw?x-oss-process=image/format,png [format_png 46]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzBmZGM1ZWY0YzMxZDRmNmE5NTYyODc4NzNmZGExZTAzLnBuZw?x-oss-process=image/format,png [format_png 47]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzE3YTYyNDVhM2M1NzQxN2VhZTViYmU1MjNmMmZlOTY2LnBuZw?x-oss-process=image/format,png [format_png 48]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzYwMjMwOGQwYTg2ZjQ3MDlhZTIwMTY1YzdmNmYzNTQzLnBuZw?x-oss-process=image/format,png [format_png 49]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzg1ZTk3MGUwNTU3OTQyNmZhOTRmODZlMDAyZDkzMTMzLnBuZw?x-oss-process=image/format,png [format_png 50]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzI2YmE3MDE1Y2RkOTQ4ZTg5NWU2OTczMTg3MzQxZjNiLnBuZw?x-oss-process=image/format,png [format_png 51]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzVlYjg2ODFlMTk5ZjQ0ZjI4ZWQwMGM3NTliYmE0Mjc3LnBuZw?x-oss-process=image/format,png [format_png 52]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzg4NTU0N2QzZDdlMTRmZDhhMTYxN2VhM2ZjN2I4ZDcwLnBuZw?x-oss-process=image/format,png [format_png 53]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzZiMDM4ZDc3MTMwNjQzNzFhZTI0OTVhN2Q4NGViOGE1LmpwZWc?x-oss-process=image/format,png [format_png 54]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2Q3MjZhNmYxODdjYTRmNWFhMjA4YTRiMjU5MDczOTc0LmpwZWc?x-oss-process=image/format,png [format_png 55]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzBkN2FmYmYwMWRmMjQ0YTFhYmRiZDAwMTlmYjk2NWJmLmpwZWc?x-oss-process=image/format,png [format_png 56]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyL2MyYTQzZTc4Mjc1NjQxYzFiMjQ0ODY5ZWE0OGUxMGFiLmpwZWc?x-oss-process=image/format,png [format_png 57]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzA1NjQzM2ExZmI4NDQyYjhiYzZkODBjOTZiYWEzZGYwLmpwZWc?x-oss-process=image/format,png [format_png 58]: https://imgconvert.csdnimg.cn/aHR0cDovLzViMDk4OGU1OTUyMjUuY2RuLnNvaHVjcy5jb20vaW1hZ2VzLzIwMTgxMDIyLzk2MmJiMTU4OGE0ZTQzZDI4ZWI0ZWFiYmRhODA2M2IzLmpwZWc?x-oss-process=image/format,png
相关 AVL树 以后在有面试官问你AVL树,你就把这篇文章扔给他。 作者:帅地 来源 |网络整理,版权归原作者所有,侵删。 背景 西天取经的路上,一样上演着编程... 川长思鸟来/ 2024年04月18日 22:41/ 0 赞/ 54 阅读
相关 AVL树 AVL树> 在之前我实现了二叉搜索树,但是二叉搜索树存在问题,就是当输入单调增或者单调减的结点数据后,二叉树就退化成类似链表的结构了,为了解决二叉搜索树的这种弊端就引入 朱雀/ 2022年07月14日 23:38/ 0 赞/ 146 阅读
相关 AVL树 1. 概述 AVL树是最早提出的自平衡二叉树,在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。AVL树得名于它的发明者G.M. Adelson-V ゝ一纸荒年。/ 2022年06月18日 12:27/ 0 赞/ 155 阅读
相关 AVL树 AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和 た 入场券/ 2022年06月15日 09:08/ 0 赞/ 170 阅读
相关 AVL树详解 下面讲解AVL树的C语言代码实现: 1.首先是定义: define LH 1 define EH 0 define LH -1 define 红太狼/ 2022年06月13日 11:21/ 0 赞/ 187 阅读
相关 AVL树详解 AVL树是最先发明的自平衡二叉查树,二叉查找树的性质如果不知道可以百度一下。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。其实性质还是比较简单的, 桃扇骨/ 2022年06月01日 00:51/ 0 赞/ 175 阅读
相关 AVL树 一、AVL树继承自BinarySearchTree, 1,它是一棵平衡二叉树,他要求每个节点的左右子树的深度之差不能超过1。 2,每个节点都有一个平衡因子bf,取值为 今天药忘吃喽~/ 2022年05月27日 00:19/ 0 赞/ 161 阅读
相关 AVL树 [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 平衡二叉树,是一个方便查找的树,树的左子树深度与右子树的 谁借莪1个温暖的怀抱¢/ 2022年01月15日 01:39/ 0 赞/ 187 阅读
还没有评论,来说两句吧...