文章插图
到这里,红黑树的插入操作就结束了,以上的操作,只是单纯的一步操作,这些操作只是在插入之后对被插入节点红黑树的一个平衡,我们在进行旋转变色之后,很有可能上层的节点就又不符合定义了,这个时候我们就需要进行递归的旋转变色,直到最后整个红黑树平衡 。
下面扔代码
if (cmp < 0) h.left = put(h.left, h, key, val);else if (cmp > 0) h.right = put(h.right, h, key, val);else h.value = https://www.isolves.com/it/cxkf/sf/2022-08-15/val;//判断红黑,进行旋转,调整树的平衡if (isRed(h.right) && isRed(h.right.right)) {h.right.color = h.color;h.color = Red;h = rotateLeft(h);}if (isRed(h.right) && isRed(h.right.left)) {//RL问题,先右旋,将问题转换为RRh.right = rotateRight(h.right);//变色h.right.color = h.color;h.color = Red;//再左旋h = rotateLeft(h);}if (isRed(h.left) && isRed(h.left.left)) {h.left.color = h.color;h.color = Red;h = rotateRight(h);}if (isRed(h.left) && isRed(h.left.right)) {//LR问题,先左旋,将问题转换为LL问题h.left = rotateLeft(h.left);//变色h.left.color = h.color;h.color = Red;//再右旋h = rotateRight(h);}h.N = size(h.left) + size(h.right) + 1;return h;}
欢迎点赞关注+转发!推荐阅读
- 生命|我国最大的淡水湖 鄱阳湖蒸发了3/4 出现“生命之树”奇观
- 杭州|杭州高温天数创纪录!西湖龙井茶树9成被“晒干”
- 柳树的功效和作用
- “沉舟侧畔千帆过,病树前头万木春” 病树前头万树春
- 用力吸气肾疼
- 7岁女孩身高体重标准
- 如何补血益气 红景天的功效以及成分
- 教师|有效沟通是指领导要让下属知道自己的工作内容以及领导的要求
- 什么是IP 欺骗以及如何防范?
- 清浊祛毒丸的成份以及其作用