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