一、二叉樹、二叉查找樹、二叉排序樹、二叉平衡樹
二叉樹:每個結(jié)點(diǎn)非常多 2 棵子樹,沒有其它限制了。
二叉查找樹:也叫二叉搜索樹,首先它是二叉樹,并且左子樹上所有結(jié)點(diǎn)的值 小于 它根結(jié)點(diǎn)的值,右子樹上所有結(jié)點(diǎn)的值大于它根結(jié)點(diǎn)的值。
二叉排序樹:就是二叉查找樹。
二叉平衡樹:更加準(zhǔn)確的應(yīng)該叫 “平衡二叉樹”,它是 “平衡二叉搜索樹” 的簡稱。首先它是 “二叉搜索樹”,其次,它是平衡的,即是它的每一個結(jié)點(diǎn)的左子樹的高度和右子樹的高度差至多為 1。
總結(jié)來說,二叉樹就是每個節(jié)點(diǎn)非常多有兩個子節(jié)點(diǎn)的樹。它對節(jié)點(diǎn)的內(nèi)容沒要求。二叉排序樹 = 二叉查找樹。它是一種二叉樹,但是對節(jié)點(diǎn)內(nèi)容有要求。每個節(jié)點(diǎn)的左子樹(如果有的話)里所有節(jié)點(diǎn)的值都必須小于當(dāng)前節(jié)點(diǎn)的值;每個節(jié)點(diǎn)的右子樹(如果有的話)里所有節(jié)點(diǎn)的值都必須大于當(dāng)前節(jié)點(diǎn)的值。如果一顆二叉樹看上去基本沒有缺胳膊少腿(從根到每片葉子的路徑長度非常多相差1),那么它是棵平衡二叉樹。對于一般二叉樹而言,平衡不平衡沒啥特別意義,但是對二叉查找樹而言,越平衡則查找效率越高。
延伸閱讀:
二、完全二叉樹
完全二叉樹是一種特殊的二叉樹,滿足以下要求:
所有葉子節(jié)點(diǎn)都出現(xiàn)在 k 或者 k-1 層,而且從 1 到 k-1 層必須達(dá)到最大節(jié)點(diǎn)數(shù);第 k 層可以不是滿的,但是第 k 層的所有節(jié)點(diǎn)必須集中在最左邊。?需要注意的是不要把完全二叉樹和“滿二叉樹”搞混了,完全二叉樹不要求所有樹都有左右子樹,但它要求:任何一個節(jié)點(diǎn)不能只有左子樹沒有右子樹;葉子節(jié)點(diǎn)出現(xiàn)在最后一層或者倒數(shù)第二層,不能再往上。