樹(tree):n (n>=0) 個結點構成的有限集合.
當n=0時,成為空樹;
對於任一棵非空樹(n>0),它具備一下性質:
樹中有乙個稱為"根"的特殊結點,用r表示;
其餘結點可分為m(m>0)個互不相交的有限集t1,t2,...,tm,其中每個集合本身又是一棵樹,稱為原來樹的"子樹"
子樹是不相交的;
除了根結點外,每個結點有且僅有乙個父結點;
一棵n個結點的樹有n-1條邊。
樹的一些基本用語
1.結點的度:結點的子樹個數
2.樹的度: 樹的所有結點中最大的度數
3.葉結點:度為0的結點
4.父結點:有子樹的結點是其子樹的根結點的父結點
5.子結點:若a結點是b結點的父結點,則稱b結點是a結點的子結點;子結點也稱孩子結點。
6.兄弟結點:具有同一父結點的各結點彼此是兄弟結點。
7.路徑和路徑長度:從結點n1到nk的路徑為乙個結點序列n1,n2,...,nk,ni是i+1的父結點。路徑所包含邊的個數為路徑的長度。
8.祖先結點:沿樹根到某一結點路徑上的所有結點都是這個結點的祖先結點。
9.子孫結點:某一結點的子樹中的所有結點是這個結點的子孫。
10.結點的層次:規定根結點在1層,其它任一結點的層數是其父結點的層數加1
11.樹的深度:樹中所有結點中的最大層次是這棵樹的深度.
我們要階段性地完成乙個艱鉅目標的時候,盡可能地把氛圍營造得悲壯一點,這是乙個聰明的辦法。
繪製樹結構
樹的表示方法有雙親表示法 孩子表示法 雙親孩子表示法 孩子兄弟表示法,具體請參考其中前三種基於陣列,最後一種基於鍊錶。我定義的數節點資料結構為 typedef struct treenode treenode,ptreenode 也就是孩子兄弟表示法,附加乙個指向父節點的指標。參考上圖,發現第乙個子...
樹結構備份
為每個樹枝建立葉子結點 private void createbranch stringbuffer treemap,int parentid,list alist 在錄入結點資料時可以提前錄入結點下是否有子結點的資訊,這樣如果該結點下面沒有子結點,就不用再去遞迴,可以提公升效率 if map.ge...
樹結構 概念
節點的度 乙個節點的子節點的數量就是節點的度 節點的權 節點所存放的內容就是節點的權 葉子節點 沒有子節點的節點 節點的度為零的節點 稱為子節點 子樹 從樹結構中分出乙個更小的樹結構稱為子樹 層 根節點為第一層,根節點的子節點為第二層,以此推類 樹的高度 最大的層就是樹的高度 森林 多個樹組成稱為森...