美文网首页
红黑树核心之节点新增

红黑树核心之节点新增

作者: 蒋征 | 来源:发表于2020-11-27 22:00 被阅读0次

红黑树插入算法

红黑树节点插入与二叉搜索树类似,由根节点开始寻找待插入的位置。与二叉搜索树不同的内容大致有如下几点:

1、红黑树中所有新的节点,默认都是红色。
2、红黑树所有节点都需要记录父节点。
3、红黑树与二叉搜索树插入不同的是在节点插入之后要进行规则校验
4、如果红黑树不平衡,就要进行修复动作:
4.1、如果插入的是根节点,那么违反红黑树根节点必须为黑色规则,就直接把节点修改为黑色;
*4.2、如果插入节点的父节点是黑色的,则符合红黑树规则,跳过此步骤;
*4.3、如果插入节点的父节点是红色的,祖父结点的另一个子节点是红色,则将祖父节点变红,而父和叔节点变黑,然后设置祖父节点为当前节点,然后重新开始判断;
*4.4、如果插入节点的父节点是红色的,祖父结点的另一个子节点是黑色,则分几种情况讨论:

1、插入节点是其父的左子节点,而父节点是祖父节点的左子节点,那么:把父节点变为黑色,祖父节点变为红色,然后对祖父节点进行右旋,然后重新开始判断
2、插入节点是其父的右子节点,而父节点是祖父节点的右子节点,那么:把父节点变为黑色,祖父节点变为红色,然后对祖父节点进行左旋,然后重新开始判断
3、插入节点是其父的右子节点,而父节点是祖父节点的左子节点,那么:把当前节点的父节点做为新的当前节点,对新的当前节点进行左旋,然后重新开始判断。
4、插入节点是其父的左子节点,而父节点是祖父节点的右子节点,那么:把当前节点的父节点做为新的当前节点,对新的当前节点进行右旋,然后重新开始判断。

相关文章

  • 红黑树核心之节点新增

    红黑树插入算法 红黑树节点插入与二叉搜索树类似,由根节点开始寻找待插入的位置。与二叉搜索树不同的内容大致有如下几点...

  • 红黑树核心之节点删除

    红黑树删除规则:1:如果删除节点是叶子节点(1)如果删除节点是红色的,那就直接删除,不做其它操作(2)如果删除节点...

  • 红黑树旋转规则总结

    红黑树的定义 任何一个节点非红即黑; 树的根为黑色; 叶子节点为黑色(注意:红黑树的所有叶子节点都指的是Nil节点...

  • 红黑树性质及添加删除节点的染色和旋转过程

    红黑树的性质 1. 红黑树添加节点 红黑树添加节点,我们一般在叶子节点添加红色,因为添加红色节点能更快的符合上面几...

  • 红黑树

    红黑树: 根节点是黑 插入新节点是红链 左旋右旋 反转颜色,A节点左右子节点都是红链 则子节点全转为黑链,同时A变...

  • 二叉树与红黑树

    红黑树工程中使用: 1.利用红黑树顺序功能(最小节点,最大节点);2.利用红黑树快速查找的功能,key-value...

  • 红黑树

    1. 红黑树 1.1 红黑树的应用场景 红黑树需要具备的性质: 每一个节点或者为红色或者为黑色; 根节点是黑色的;...

  • 红黑树的插入算法

    红黑树是平衡二叉查找树 (Balanced BST),和普通的二叉查找树相比,红黑树的节点中还存有节点的颜色(红或...

  • 手写红黑树,实现增、删、查功能

    红黑树 1、概念 红黑树(RBT)的定义:它或者是一颗空树,或者是具有一下性质的二叉查找树。 节点非红即黑 根节点...

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

网友评论

      本文标题:红黑树核心之节点新增

      本文链接:https://www.haomeiwen.com/subject/kgyfwktx.html