码迷,mamicode.com
首页 > 其他好文 > 详细

霍夫曼树 二三树 红黑树 B树 B+树

时间:2018-07-29 23:25:54      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:红黑树   建立   intro   霍夫曼树   复杂   Cattle   时间复杂度   递归   html   

  • 霍夫曼树:

特点:带权路径长度最短,∑(每个节点的权重)*(每个节点的层数)

生成:每次合并权值最小的两个节点(子树)建立二叉树,将合并后的子树作为新节点,权值为节点(子树)权值之和

  • 二三树:

特点:平衡查找树,每个叶子节点为空且层数相同,查找时间复杂度O(lgn)

生成:2节点包含一个key和两个子节点(left->key<key<right->key),3节点包含两个key和三个子节点(left->key<key1<middle->key<key2<right->key);在(倒数第二层)2节点插入则直接加入,在(倒数第二层)3节点插入则需要进行节点分裂,并可能层层向上传播分裂

  • 红黑树:

特点:相对最平衡的二叉树,每个叶子节点为空且路径包含相同数量的黑节点,红节点不连续存在且向左倾斜(可以把红节点与右侧黑节点看成一个3节点),查找时间复杂度O(lgn)

生成:根节点为黑色,尝试插入红节点,如果插入后不再平衡则进行左旋/右旋,如果插入后两个子节点都为红色则颜色反转

  • B树:

特点:根节点包含1~m-1个key,至少有两个子节点,非根节点包含m/2~m-1个key,至少有m/2+1个子节点

生成:在叶子节点插入,如果节点满则分裂节点,一个key加入父节点,如果key满则递归向上

  • B+树:

特点:类似B树,但所有key与data都在叶子节点分布

生成:类似B树

 

 

 

参考文献:

https://blog.csdn.net/aircattle/article/details/52347955

https://www.cnblogs.com/vianzhang/p/7922426.html

http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html

http://www.cnblogs.com/yangecnu/p/Introduce-2-3-Search-Tree.html

http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html

https://blog.csdn.net/panglinzhuo/article/details/79437402

 

霍夫曼树 二三树 红黑树 B树 B+树

标签:红黑树   建立   intro   霍夫曼树   复杂   Cattle   时间复杂度   递归   html   

原文地址:https://www.cnblogs.com/jhc888007/p/9385336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!