二叉樹
概念:二叉樹(binary tree)是指樹中節(jié)點的度不大于2的有序樹,它是一種最簡單且最重要的樹。二叉樹的遞歸定義為:二叉樹是一棵空樹,或者是一棵由一個根節(jié)點和兩棵互不相交的,分別稱作根的左子樹和右子樹組成的非空樹;左子樹和右子樹又同樣都是二叉樹
特點:每個節(jié)點支持兩個分支的樹結(jié)構(gòu),相比于單向鏈表,多了一個分支
二叉查找樹
一棵空樹,或者是具有下列性質(zhì)的二叉樹:
(1)若左子樹不空,則左子樹上所有結(jié)點的值均小于它的根結(jié)點的值;
(2)若右子樹不空,則右子樹上所有結(jié)點的值均大于它的根結(jié)點的值;
(3)左、右子樹也分別為二叉排序樹;
特點:它具有二叉查找樹的所有特點,同時增加了一個規(guī)則:”它的左右兩個子樹的高度差的絕對值不超過1“。平衡二叉樹會采用左旋、右旋的方式來實現(xiàn)平衡。
平衡二叉樹
特點:平衡二叉樹:它具有二叉查找樹的所有特點,同時增加了一個規(guī)則:”它的左右兩個子樹的高度差的絕對值不超過1“。平衡二叉樹會采用左旋、右旋的方式來實現(xiàn)平衡。
紅黑樹
(1)每個節(jié)點或者是黑色,或者是紅色。
(2)根節(jié)點是黑色。
(3)每個葉子節(jié)點(NIL)是黑色。 [注意:這里葉子節(jié)點,是指為空(NIL或NULL)的葉子節(jié)點!
(4)如果一個節(jié)點是紅色的,則它的子節(jié)點必須是黑色的。
(5)從一個節(jié)點到該節(jié)點的子孫節(jié)點的所有路徑上包含相同數(shù)目的黑節(jié)點
特點:一條路徑不能比其他任意一條路徑的兩倍還要長
B樹
B樹就是一個有序的多路查詢樹
(1) 樹中的每個節(jié)點最多有個m個孩子節(jié)點(最多有m-1)個關(guān)鍵字(元素))
(2) 節(jié)點的結(jié)構(gòu)
(3) 除根節(jié)點外,其它節(jié)點至少有m/2個孩子節(jié)點
(4)若根節(jié)點不是葉子節(jié)點,則根節(jié)點至少有兩個孩子節(jié)點
(5) 所有葉子節(jié)點都在同一層上,即B樹的所有結(jié)點的平衡因子均等于0的多路查找樹
B+樹
特點:
1.數(shù)據(jù)只出現(xiàn)在葉子節(jié)點(非葉子節(jié)點并不存儲真正的 data)文章來源:http://www.zghlxwxcb.cn/news/detail-494134.html
2.所有葉子節(jié)點增加了一個鏈指針文章來源地址http://www.zghlxwxcb.cn/news/detail-494134.html
到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)-各種樹(二叉樹、二叉查找樹、平衡二叉樹、紅黑樹、B樹、B+樹)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!