编程技术分享平台

网站首页 > 技术教程 正文

用14张图片来完美诠释红黑树,让你对红黑树有深刻的理解

xnh888 2024-10-20 15:28:35 技术教程 18 ℃ 0 评论

数据结构对于程序员来说很重要,但是如果你只看数据结构的理论知识,你会发现很难学懂,这个时候,不妨利用图片的方式来加深理解,然后再去看理论知识,或许会有很大的帮助。

插入15,我们发现,15显示在右边。

插入20,我们发现,由于20比15大,所以20在右边。

插入25,我们发现由于比15大,所以需要放在15的右边,然后找到20,发现20还是比25小,所以放在20的右边。

插入35,我们发现,由于35比25大,25比20大,所以25变成了20和35的爸爸。

插入45,我们发现,放的位置和35一样,不过这个时候,整个红黑树开始表现不平衡了,也就是左边的节点(15的左边)要少于右边的节点。

插入40,由于40比35大,比45小,所以变成下面的情况。

插入55,一个转折点出现了,整个树开始变得平衡,不过这个时候,我们发现需要移植的节点数相对比较多,这就是为什么MySQL不用红黑树来作为存储数据的结构。

插入8这个节点,由于比25小,所以放在25的左边,依次推,比15小放左边,继续比15小,放入左边。

插入节点18,由于比15大,所以放入15的右边,但是比20小,所以放入20的左边。

插入25这个节点,由于大于等于25,所以首先放入到右边,然后比40小,所以放入40的左边,继续比35小,所以放入35的左边。

继续插入25这个节点,由于大于等于25,所以放入右边,由于比40小,所以放入其左边,然后35大于25,所以变成这样。

继续插入15这个节点,我们发现比25小,所以左边,这个时候有意义的事情出现了,就是15等于15,但是由于右边已经有20了,所以15放入了左边,这个时候,15大于10,10大于8,也就是10位于8和15的中间,所以10变成了爸爸。

最后一个比较难理解了,估计需要结合理论了,因为插入10的时候,理论10等于10,但是右边已经有15了,最后还是放入了右边。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表