算法导论中的红黑树:
1:每个结点都为红色或者黑色
2:根意结点为黑色
3:每一个叶子结点(最后的空节点)是黑色
4:如果一个意结点为红色,那么它的孩子结点为黑色
5:从任意结点到叶子结点经过的黑结点都一样(对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。)
红黑树:二分搜索树–>特殊机制
2-3树:二分搜索树–>特殊机制
红黑树与2-3树是等价的
2-3树:
满足二分搜索树的基本性质;
结点可以存放一个元素或者两个元素
2-3树添加元素不会将元素添加到空结点上【产生结点融合】
性质:2-3树是一棵绝对平衡的树
2-3树:
2-3树添加结点:
插入结点的几种情况:
1:如果插入2-结点
2:如果插入3-结点
3:如果插入3-结点,父亲结点2-结点
4:如果插入3-结点,父亲结点为3-结点
红黑树与2-3树
红黑树与2-3树的转换:
红黑树添加新元素:
红黑树与其他性能总结比较:
1:对于完全随机的数,普通二分搜索树很好用
缺点:极端情况下退化成链表(或高度不平衡)
2:查询较多情况下,AVL很好用
3:红黑树统计性能更优,
4:红黑树更擅长增加和删除较多的情况,但是综合增删改查所有操作,红黑树更有优势【2logn高度】
5:TreeMap、TreeSet 底层实现:红黑树
Splay Tree(伸展树):
另外一种统计性能优秀的树结构
局部性原理:刚被访问的内容下次高概率被再次访问