- 霍夫曼樹:
特點:帶權路徑長度最短,∑(每個節點的權重)*(每個節點的層數)
生成:每次合並權值最小的兩個節點(子樹)建立二叉樹,將合並后的子樹作為新節點,權值為節點(子樹)權值之和
- 二三樹:
特點:平衡查找樹,每個葉子節點為空且層數相同,查找時間復雜度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