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

  • 霍夫曼树:

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

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

  • 二三树:

特点:平衡查找树,每个叶子节点为空且层数相同,查找时间复杂度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

 

posted @ 2018-07-29 22:23  jhc888007  阅读(1686)  评论(0编辑  收藏  举报