Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

红黑树部分的补充 #1

Open
dreamerlzl opened this issue Feb 23, 2020 · 2 comments
Open

红黑树部分的补充 #1

dreamerlzl opened this issue Feb 23, 2020 · 2 comments

Comments

@dreamerlzl
Copy link

dreamerlzl commented Feb 23, 2020

作者写得不错,很感谢笔记的分享,这对复习和快速的准备很有帮助。
(个人看法)感觉红黑树那里可以建议看Algorithms第4版,因为我对比了一下Introduction to Algorithm和Algorithms第四版的引入,感觉后者那种把左倾红黑树作为2-3树(3阶B树)的二叉树表现形式的观点似乎更容易记忆;把3节点的2个key拆开,左边为红色右边为黑色,因此红色的节点表明和parent节点等black height;新插入的节点作为红色是为了假设它和parent节点等高, 插入之后的一系列操作可以理解是3节点变成4节点之后的分裂和中间节点的上升等等。

当然,这也可能是是因为我对经典红黑树理解不能...感觉四条性质放下来很抽象。

@dreamerlzl
Copy link
Author

还有,找到了一个自定义B-树插入和删除的网站,感觉有助于理解2-3树和红黑树:
https://www.cs.usfca.edu/~galles/visualization/BTree.html

@wolverinn
Copy link
Owner

谢谢你的推荐。我最近也在看算法第四版的红黑树的实现,不过我印象中它那一章的最后解释了为什么只允许红色左链接,然后作者解释好像是这条规则是为了更方便代码的实现,如果没有这个规则的话,代码实现要复杂得多。因此个人感觉作者的意思是允许红色左右链接才是更具普适性的。但是目前我还没有实现出这个代码。。
网站分享很不错,多谢。
欢迎继续讨论红黑树的话题,我也只是大概看了一下算法第四版里面的,不知道作者是不是这个意思

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants