樹結構 概念

2021-09-28 15:00:20 字數 747 閱讀 9702

節點的度:乙個節點的子節點的數量就是節點的度;

節點的權:節點所存放的內容就是節點的權;

葉子節點:沒有子節點的節點(節點的度為零的節點)稱為子節點;

子樹:從樹結構中分出乙個更小的樹結構稱為子樹;

層:根節點為第一層,根節點的子節點為第二層,以此推類;

樹的高度:最大的層就是樹的高度;

森林:多個樹組成稱為森林;

二叉樹:任何乙個節點的子節點數量不超過2;

二叉樹的節點分為左節點和右節點,不能隨意顛倒;

只有左節點的二叉樹和只有右節點的二叉樹不是同乙個樹,即使節點的權相等;

二叉樹的左右節點的權和另乙個二叉樹的左右節點的權不同,也不是同乙個樹;

滿二叉樹所有葉子節點都在最後一層,且節點的數量 = 2 的層數次方 -1 ;

(有一完全二叉樹有三層,那他的節點數量是 2的三次方 -1 = 7)

滿二叉樹也可以理解為:每乙個節點的子節點數量都是2 大於或小於2 都不是完全二叉樹;

完全二叉樹:所有葉子節點都在最後一層或倒數第二層,且最後一層的葉子節點在左邊連續,倒數第二層的葉子節點

在右邊連續;(從上往下從左往右數)

繪製樹結構

樹的表示方法有雙親表示法 孩子表示法 雙親孩子表示法 孩子兄弟表示法,具體請參考其中前三種基於陣列,最後一種基於鍊錶。我定義的數節點資料結構為 typedef struct treenode treenode,ptreenode 也就是孩子兄弟表示法,附加乙個指向父節點的指標。參考上圖,發現第乙個子...

樹結構備份

為每個樹枝建立葉子結點 private void createbranch stringbuffer treemap,int parentid,list alist 在錄入結點資料時可以提前錄入結點下是否有子結點的資訊,這樣如果該結點下面沒有子結點,就不用再去遞迴,可以提公升效率 if map.ge...

樹結構總結

樹 tree n n 0 個結點構成的有限集合.當n 0時,成為空樹 對於任一棵非空樹 n 0 它具備一下性質 樹中有乙個稱為 根 的特殊結點,用r表示 其餘結點可分為m m 0 個互不相交的有限集t1,t2,tm,其中每個集合本身又是一棵樹,稱為原來樹的 子樹 子樹是不相交的 除了根結點外,每個結...