数据结构——红黑树
文章目录 1 引言 2 定义 定义节点名称: 3 性质 4 2-3-4树和红黑树的等价关系 5 查找 6 插入 6.1(情景3) 插入节点的父节点为黑色 6.2(情景4) 插入节点的父节点为红色,叔叔节点为黑色 6.2.1(情景4.2.1) 父节点P为G左孩子,插入位置为左孩子 6.2.2(情景4.2.2) 父节点P为G左孩子,插入位置为右孩子 6.2.3(情景4.3.1) 父节点P为G右孩子,插入位置为右孩子 6.2.4(情景4.3.2) 父节点P为G右孩子,插入位置为左孩子 6.3(情景4.1) 插入节点的父节点为红色,叔叔节点为红色 6.3.1(情景4.1) 插入位置为左子树 6.3.2(情景4.1) 插入位置为右子树 7 删除 删除情景1:替换结点是红色结点 7.1 删除红色叶子节点 7.2 删除红色节点,只有左子树或只有右子树 7.3 删除红色节点,既有左子树又有右子树 7.4 删除的黑色节点仅有左子树或者仅有右子树 7.5 删除黑色的叶子节点 8 总结 9 思考题和习题答案 思考题1:黑结点可以同时包含一个红子结点和一个黑子结点吗? 习题1:请画出图15的插入自平衡处理过程。 习题2:请画出图29的删除自平衡处理过程。 推荐阅读 1 引言 红黑树 是 树 的 数据结构 中最为重要的一种。 Java 的容器 TreeSet 、 TreeMap 均使用 红黑树 实现。