
数据结构
文章平均质量分 57
FresherHe
这个作者很懒,什么都没留下…
展开
-
平衡二叉搜索树 - 左旋|右旋
上一节 红黑树前奏 - 对树的基本理解 我们讲到 二叉搜索树 单向链表的问题,为了解决这个问题,我们引入了平衡二叉搜索树。所谓平衡二叉搜索树,必须满足 BST 的特性。何为平衡,每个节点的平衡因子的绝对值 <= 1.那么平衡因子如何计算呢?大体思路:计算每个节点的高度 高度 = MAX(左子树高度, 右子树高度) + 1每个节点的左子树和右子树的差就是 平衡因子案例:上图因为插入 2 元素,导致了整棵树不平衡。此时,为了达到平衡状态,我们需要进行左旋和右旋的操作。为了方便理解,下原创 2021-03-21 18:18:26 · 744 阅读 · 0 评论 -
红黑树前奏 - 对树的基本理解
背景我们在看JDK1.8 HashMap源码时,可发现当同一个桶的链表长度>8,并且table.length >= 64,链表就会转为红黑树(提升查询效率)。但对于红黑树的理解大多数只在于一个名词,或者一个印象。本节内容主要分享一些本人对树的基础知识及左旋和右旋的理解,感谢大家的阅读。概念树一种数据结构,由多个节点组成的一个有层级的集合。具体概念:参见百度 树常见树的结构1. 二叉树每个节点最多含有两个子树的树称为二叉树2. 满二叉树叶节点除外的所有节点均含有两个子树的树原创 2021-03-21 17:54:51 · 157 阅读 · 0 评论