从2-3-4树模型到红黑树实现
目录 从2-3-4树模型到红黑树实现 前言 2-3-4树 查找 插入 树的生长 删除 左倾红黑树 查找 插入 删除 总结 参考文献 从2-3-4树模型到红黑树实现 前言 红黑树,是一个高效的二叉查找树。其定义特性保证了树的路径长度在黑色节点上完美平衡,使得其查找效率接近于完美平衡的二叉树。 但是红黑树的实现逻辑很复杂,各种旋转,颜色变化,直接针对其分析,大多数都是死记硬背各种例子,不太容易有个直观的理解。实际上,红黑树是实现手段,是其他概念模型为了方便在二叉树上实现进而定义的节点颜色这个信息。如果从概念模型入手,再一一对应,就容易理解的多了。而红黑树能够对应的模型有2-3树,2-3-4树等,下面我们会以2-3-4树作为概念模型,对红黑树进行分析。 2-3-4树 2-3-4树是对完美平衡二叉树的扩展,其定义为: 在一个节点中,可以存在1-3个 key 。 2-节点,拥有1个 key 和2个子节点。 3-节点,拥有2个 key 和3个子节点。 4-节点,拥有3个 key 和4个子节点。 子节点为空的节点称为叶子节点。 任意从根节点到叶子节点的路径拥有相同的长度,即路径上的链接数相同。 下图就是一个2-3-4树: 查找 2-3-4树的查找很简单,类似于二叉树,步骤如下: 将查找 key 和节点内的 key 逐一对比。 如果命中,则返回节点内 key 的对应值。 如果节点内的 key