所有讲红黑树的文章都认为自己把红黑树讲清楚了透彻了,比如本站的一堆文章:
https://segmentfault.com/a/11...
所有这些文章都会讲解红黑树规则,配上示例图片,怎么旋转,改变节点颜色。
但是,几乎没有文章会说,人们是怎么想到红黑树的,为什么要给树的节点染上红黑两种颜色呢?毕竟,现实中没有树有两种颜色,人们无法从现实世界的树想到红黑树;即使要上颜色,为什么是红黑两种,而不是三种、4种、和5种呢?
为什么的问题不解决,所有关于红黑树的讲解,说明,都是空中楼阁,地基不稳,他们都是毫无道理的,即使所谓的红黑树在实际运行中观测到的效率好比其他的平衡树、AVL树效率好高,但是,并没有理论证明所有情况下都是这样。
为什么红黑树的规则是这样的,为什么会想到,人们是怎么想到红黑树规则的?希望有同学能想清楚这个问题,大做一篇文章,我想对所有的辛辛学子都会有帮助。
我终于找到一篇文章很好的讲述红黑树的原理了:
https://www.cnblogs.com/zhenb...
其实就是一句话,红黑树其实是由234树变化而来的,把红黑树所有的红节点与父节点合并,就能得到一颗234树;反之,将234树中有2个以上数据的节点拆分开来,子节点染红,其余节点染黑就能得到红黑树。
希望那些早期不懂还冷嘲热讽的垃圾自觉点,不要学这些知识,你们配不上。
还要一些人,不懂就多看,多学,少讲废话。我想,多数人可能和我一样,宁愿帖子无人回复,也不愿看到垃圾跑进来发表多余的废话。
这是给那些真心求学的学子们看的,垃圾们看到了也看不懂。