樹和二叉樹的相關知識

2021-10-06 10:44:57 字數 1972 閱讀 4570

如果n=0,則他是空樹。

如果n>0,則其中存在唯一結點作為樹的根結點(root)。

除根結點外的其餘元素被分為m(m>=0)個互不相交的集合t1,t2…tm,每個子集本身也是一棵樹,被稱作根結點的子樹。

祖先結點:指按照路徑找到該結點所經過的結點,例如:a,b,d結點是i的祖先結點。

子孫結點: 祖先結點反過來就是子孫結點,例如id,b,a的子孫結點。

雙親結點:按照路徑找到該結點所經過的最近結點,例如:bd的雙親結點,di的雙親結點。

孩子結點:雙親結點反過來就是孩子結點,例如:db的孩子結點,gc的孩子結點。

雙親結點:擁有共同的雙親結點的結點互為兄弟結點,例如:de的兄弟節點,fh的兄弟結點。

:樹中乙個結點的子結點的個數為該結點的度,例如:c結點的度等於3. 而樹的度則是樹中最大的度數,例如圖中樹的度數為3,因為3是所有樹中所有結點的最大度數。

分支結點和葉子結點:度大於0的結點稱為分支結點,度等於0的結點稱為葉子節點。

結點的高度和深度:由葉子結點向上逐層累加,即結點b的高度為3。深度和高度相反,即b的深度為2。

鏈式儲存結構

先序遍歷(dlr):先遍歷根結點,然後遍歷左子樹,最後遍歷右子樹。

中序遍歷(ldr):先遍歷左子樹,然後遍歷根節點,最後遍歷右子樹。

後序遍歷(lrd):先遍歷左子樹,然後遍歷右子樹,最後遍歷根結點。

void

preorder

(bitree *bt)

/* bt為指向根結點的指標*/

}

所得結果為:124895367

void

inorder

(btnode *bt)

}

所得結果為:849251637

void

inorder

(btnode *bt)

}

所得結果為:89452673

二叉樹相關知識

先宣告一下,二叉樹我種了好久都沒有種出來,這只是他的一點兒相關知識而已 前序首先訪問根結點然後遍歷左子樹,最後遍歷右子樹。在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹,如果二叉樹為空則返回。例如,下圖所示二叉樹的遍歷結果是 abdecf 中序 中序遍歷左子樹。2 訪問根結點。...

二叉樹 二叉樹的相關操作

遞迴實現 建立求樹高 求葉子數 求節點數 統計度為2的結點個數 後序輸出 先序輸出 中序輸出 交換左右子樹 include include include define true 1 define false 0 define ok 1 define error 0 define overflow ...

樹和二叉樹(知識整理)

1 樹型結構是一類非常重要的非線性結構,樹型結構為 分支結構 一對多 層次結構 2 樹 tree 是n n 0 個結點的有限集合t,若n 0時稱為空樹,否則 1 有且只有乙個特殊的稱為樹的根 root 結點 根是入口 2 若n 1時,其餘的結點被分為m m 0 個互不相交的子集t1,t2,t3.其中...