啥情况下node.color=red

来源:13-6 颜色翻转和右旋转

psh

2020-06-09

http://img.mukewang.com/szimg/5edf5e6009f5768612840508.jpg

感觉一般不会过渡到这种奇怪状态吧,谢谢老师抽时间

写回答

1回答

liuyubobobo

2020-06-10

抱歉,你说的这种“奇怪”的状态,具体奇怪的点在哪里?你是认为哪些条件产生矛盾了?


==========


在这个图示中,42 原本是黑色的,37 原本是红色的,12 是新增节点,初始是红色的,所以添加 12 以后,形成这种状态:

//img.mukewang.com/szimg/5edfff5e0903a80e07930464.jpg


这个形态触发了右旋转。


右旋转之后,你给的截图也不是旋转后最终的颜色状态,后面还有逻辑处理颜色信息。


继续加油!:)

0
5
liuyubobobo
回复
psh
明白你的意思了。对于添加元素,不存在你说的情况。但是如果考虑删除,删除后的右旋转,可能出现这种情况,但鉴于这个课程没有讲删除的代码,仅仅实现添加来说,直接写成 x. color=BLACK 没有问题。继续加油!:)
2020-06-10
共5条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程