

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
AVL(自平衡二叉树)
从AVL树的概念,AVL树的创建思想与算法步骤,AVL树的代码实现与分析展开阐述并图解分析
若有不足之处,欢迎指出
博主空间
https://blog.youkuaiyun.com/JOElib?type=blog广度优先算法
https://joelib.blog.youkuaiyun.com/article/details/124017974?spm=1001.2014.3001.5502多叉树与图
https://joelib.blog.youkuaiyun.com/article/details/124042140?spm=1001.2014.3001.5502
目录
AVL树的概述🐼
为什么有AVL树🦁
BST的缺陷😶🌫️
- 如果将一个有序列表构造成BST(二叉排序树)时,该树会变成一棵只有右子树或者只有左子树的二叉树,变相变成一个单向链表
- 由于变成了单向链表,其检索效率大大降低,不能发挥BST的优势
- 由于还要和左子树或者是右子树进行比较,检索效率可能比单向链表还低
AVL的优点 😶🌫️
- 不存在只有左子树或者是右子树的情况,检索效率大大增大
何为AVL🦁
AVL的特征😶🌫️:
- AVL树规定左子树与右子树的高度差不可以超过1,并且在左子树和右子树中.以他们为根节点的子树仍然是一颗AVL树
AVL树的创建思路与算法步骤🐼
- 左旋思想与步骤
- 创建一个新的节点,其权值等于原根节点的权值
- 新节点的左子树等于原根节点的左子树
- 新节点的右子树等于原根结点的右子树的左子树
- 原根节点的权值等于其右子节点的权值
- 原根结点的右子树等于其右子树的右子树
- 原根结点的左子节点等于新节点
- 右旋思想与步骤
- 创建一个新的节点,其权值等于原根节点的权值
- 新节点的右子树等于原根结点的右子树
- 新节点的左子树等于原根结点的左子树的右子树
- 原根结点的权值等于其左子节点的权值
- 原根结点的左子树等于其左子树的左子树
- 原根结点的右子节点等于新节点
图解😶🌫️:

右旋

代码实现与分析🐼
节点类中🦁
1.右旋的核心代码🐻
public void rightRotation() {
var newNode = new Node(value);
newNode.right = right;
newNode.left = left.right;
value = left.value;
left = left.left;
right = newNode;
}
代码分析🐨:
略,按照算法步骤即可
2.左旋的核心代码🐻
public void leftRotation() {
var newNode = new Node(value);
newNode.left = left;
newNode.right = right.left;
value = right.value;
right = right.right;
left = newNode;
}
代码分析🐨:
略,根据算法步骤即可
3.判断树高的核心代码(最难)🐻
public int height() {
return Math.max(left != null ? left.height() : 0,right != null ? right.height() : 0) + 1;
}
代码分析🐨:
- 这里主要运用的思想是递归与回溯思想,利用递归,底层创建了许多的Math.max()
- 又根据谁调用,返回值给谁的原则,成就了该方法
- 以下是图解:


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
y-1715678241196)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
https://blog.youkuaiyun.com/JOElib?type=blog
https://joelib.blog.youkuaiyun.com/article/details/124017974?spm=1001.2014.3001.5502
https://joelib.blog.youkuaiyun.com/article/details/124042140?spm=1001.2014.3001.5502
3448

被折叠的 条评论
为什么被折叠?



