Iridescent
Iridescent copied to clipboard
红黑树部分的补充
作者写得不错,很感谢笔记的分享,这对复习和快速的准备很有帮助。 (个人看法)感觉红黑树那里可以建议看Algorithms第4版,因为我对比了一下Introduction to Algorithm和Algorithms第四版的引入,感觉后者那种把左倾红黑树作为2-3树(3阶B树)的二叉树表现形式的观点似乎更容易记忆;把3节点的2个key拆开,左边为红色右边为黑色,因此红色的节点表明和parent节点等black height;新插入的节点作为红色是为了假设它和parent节点等高, 插入之后的一系列操作可以理解是3节点变成4节点之后的分裂和中间节点的上升等等。
当然,这也可能是是因为我对经典红黑树理解不能...感觉四条性质放下来很抽象。
还有,找到了一个自定义B-树插入和删除的网站,感觉有助于理解2-3树和红黑树: https://www.cs.usfca.edu/~galles/visualization/BTree.html
谢谢你的推荐。我最近也在看算法第四版的红黑树的实现,不过我印象中它那一章的最后解释了为什么只允许红色左链接,然后作者解释好像是这条规则是为了更方便代码的实现,如果没有这个规则的话,代码实现要复杂得多。因此个人感觉作者的意思是允许红色左右链接才是更具普适性的。但是目前我还没有实现出这个代码。。 网站分享很不错,多谢。 欢迎继续讨论红黑树的话题,我也只是大概看了一下算法第四版里面的,不知道作者是不是这个意思