![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树
文章平均质量分 88
zgwhugr0216
这个作者很懒,什么都没留下…
展开
-
红黑树分析与实现之二
下面是红黑树的完整实现,包括插入删除查询等操作的实现,根据需要可以进一步扩展。由于当初写代码时没有写注释,就直接copy代码过来了,也没加注释。(若真是想钻研代码,结合我的另一篇文章红黑树分析与实现之一还是较容易读懂代码的。) #ifndef __red_black_tree__#define __red_black_tree__#define NULL 0typedef un原创 2009-11-14 19:09:00 · 477 阅读 · 0 评论 -
红黑树分析与实现之一
最近自己实现了红黑树,想把分析思路记录下来,以便以后某一天淡忘之时,能够有些东西翻翻,不必再到google上乱找一通。 红黑树,是一种平衡二叉树,sgi-STL中的set/map等容器底层实现就是采用红黑树的。它将树结点标注为红色或黑色,然后定一些规则,达到遏制树不平衡。在插入和删除时,可能违反红黑树的规则,需要进行调整。 红黑树有下面三条规则(性质):原创 2009-11-14 16:35:00 · 723 阅读 · 0 评论 -
AVL树的插入删除分析
AVL树是平衡二叉树,它通过限制左右子树高度差不能超过1来使树尽量达到平衡。 当插入或删除使左右子树高度差超过1时,需要进行适当的调整,所谓调整即对结点进行旋转(左旋转或右旋转)。 红黑树也是平衡二叉树,其规则不一样,但插入或删除违反规则时,同样是通过旋转结点使其满足规则的。对红黑树的讨论可以参详红黑树分析与实现。 (关于下图的说明:结点上方标注原创 2009-11-15 14:22:00 · 926 阅读 · 1 评论