樹(包含二叉樹)的總結:
(一)樹的框架**:
如下圖:
(二)樹的定義,性質:
(1)樹的基本概念:
根節點:沒有父節點的節點;
葉子節點/終端節點:沒有子節點的節點;或度數為0的節點。
分支節點、非終端節點:有子節點的節點。只有乙個子節點的節點為單分支節點,有2個子節點的為雙分支節點。
節點的度:某個節點的孩子數。
樹的度:樹中節點的度的最大值。通常將度為m的樹叫做m次樹,如二叉樹。
節點的層次:節點的層次從根節點開始定義,根節點為第1層,其孩子節點為第2層,以此類推。
樹的高度:節點的最大層次。
性質:(1)樹中的節點數=所有節點的度數+1;
解析:除根節點外的節點數=所有節點的度數。
(2)求解節點的個數問題:
對於度數為m的樹,在n,n0,n1,n2,...nm中只有兩個引數未知時,一般可以求出這兩個值。(ni表示度數為i的節點個數。)
如:求n和n0:
n=n0+n1+n2+...+nm;
度之和=n-1;(度之和為節點數-1)
度之和=1*n1+2*n2+3*n3+...+m*nm;
所以:n=n1+2*n2+3*n3+...+m*nm+1=n0+n1+n2+..+nm;
所以:n0=n2+2*n3+3*n4+..(m-1)*nm+1;
(n0即葉子節點的個數。)
(三)二叉樹的總結:
(四)樹和森林的總結:
樹和二叉樹 森林 線索二叉樹
1 三叉鍊錶 在二叉鍊錶的基礎上增加了乙個指向雙親的指標域。2 三叉鍊錶的結點資料型別宣告 templatestruct node 3 樹 二叉樹 1.兄弟加線。2.保留雙親與第一孩子連線,刪去與其他孩子的連線。3.順時針轉動,使之層次分明。樹的前序遍歷等價於二叉樹的前序遍歷!樹的後序遍歷等價於二叉...
二叉樹 樹 森林轉換
1 加線。在所有兄弟結點之間加一條連線。2 去線。樹中的每個結點,只保留它與第乙個孩子結點的連線,刪除它與其它孩子結點之間的連線。3 層次調整。以樹的根節點為軸心,將整棵樹順時針旋轉一定角度,使之結構層次分明。注意第乙個孩子是結點的左孩子,兄弟轉換過來的孩子是結點的右孩子 1 把每棵樹轉換為二叉樹。...
樹 森林 二叉樹的轉換
樹 森林與二叉樹的轉換 樹或森林與二叉樹之間有乙個自然的一一對應關係。任何乙個森林或一棵樹可惟一地對應到一棵二叉樹 反之,任何一棵二叉樹也能惟一地對應到乙個森林或一棵樹。1 樹 森林到二叉樹的轉換 1 將樹轉換為二叉樹 樹中每個結點最多只有乙個最左邊的孩子 長子 和乙個右鄰的兄弟。按照這種關係很自然...