二叉樹
1、性質
性質1:二叉樹第i層上的結點數目最多為 2 (i≥1)。
性質2:深度為k的二叉樹至多有2-1個結點(k≥1)。
性質3:包含n個結點的二叉樹的高度至少為log2 (n+1)。
性質4:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1。
2、種類
1、滿二叉樹
第一種定義:除了葉結點外每乙個結點都有左右子葉且葉子結點都處在最底層
第二種定義:高度為h,並且由2 –1個結點
2、完全二叉樹
只有最下面兩層結點的度可以小於2,並且最下一層的葉結點集中在靠左的若干位置上。
特點:葉子結點只能出現在最下層和次下層,且最下層的葉子結點集中在樹的左部。顯然,一棵滿二叉樹必定是一棵完全二叉樹,而完全二叉樹未必是滿二叉樹。
3、二叉查詢樹(二叉搜尋樹)
(1)、所有左子樹結點的元素小於根節點的資料,所有右子樹結點的元素大於根節點資料
(2)、任意節點的左、右子樹也分別為二叉查詢樹。
(3)、沒有鍵值相等的節點(no duplicate nodes)。
4、紅黑樹
特殊的二叉查詢樹。紅黑樹的每個節點上都有儲存位表示節點的顏色,可以是紅或黑。
紅黑樹的特性:
(1)每個節點或者是黑色,或者是紅色。
(2)根節點是黑色。
(3)每個葉子節點(nil)是黑色。 [注意:這裡葉子節點,是指為空(nil或null)的葉子節點!]
(4)如果乙個節點是紅色的,則它的子節點必須是黑色的。
(5)從乙個節點到該節點的子孫節點的所有路徑上包含相同數目的黑節點。
注意:(01) 特性(3)中的葉子節點,是只為空(nil或null)的節點。
(02) 特性(5),確保沒有一條路徑會比其他路徑長出倆倍。因而,紅黑樹是相對是接近平衡的二叉樹。
3、常見面試題
1、前、中、後、層序遍歷
前序遍歷:根結點 ---> 左子樹 ---> 右子樹
中序遍歷:左子樹---> 根結點 ---> 右子樹
後序遍歷:左子樹 ---> 右子樹 ---> 根結點
層次遍歷:僅僅需按層次遍歷就可以
二叉樹 二叉樹
題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...
樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹
目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...
二叉樹,完全二叉樹,滿二叉樹
二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...