定義:1)只有乙個根結點;2)其餘結點為幾個不相交的有限集,他們本身也是一棵樹,且被稱為根的子樹。
樹的定義就用到了遞迴的方法。
幾個概念
結點的度:該結點擁有的子樹的數量
葉結點:度為0的結點
樹的度:結點度的最大值
層次:根結點為第一層,其孩子為第二層,以此類推。
深度:結點的最大層數
高度:數量和深度一致,不過是自底向上計數,葉結點的高度為1
樹的儲存結構
1)雙親表示法
下標data
parent0a
-11b0
2c03
d14e
25f2
6g37
h38i
39j4
上表表示的樹如下所示。
**如下:
/*樹的雙親表示法結點結構定義*/
#define max_tree_size 100
typedef
int telemtype;
typedef
struct ptnode
ptnode;
typedef
struct
ptree;
還有孩子表示法,以及孩子雙親表示法與之類似;下面從樹結點的兄弟角度思考,可以發現,任意一棵樹,他的長子(如果存在)就是唯一的,它的右兄弟也是唯一的,所以可以用兩個指標:乙個長子域和其右兄弟域。這就是:
孩子兄弟表示法
**如下:
typedef
struct csnode
csnode,
*cstree;
這種表示方法最大的好處,就是把一棵樹變成了二叉樹,這就和後邊的基於二叉樹的研究內容聯絡了起來。 資料結構之樹的儲存結構
樹是一種一對多的資料結構,這個一對多很好解釋,就比如乙隻狗媽媽,會有多隻小奶狗,這不就有一對多的意思嗎!樹的根節點有且只有乙個,就比如小奶狗們只有乙個親狗媽。那麼圖上的 b c d e 都是樹的根節點 a 的孩子 總之,樹就是有很多結點構成,只不過這些結點在樹中會有不同的稱呼,來分析一下下圖 度 結...
資料結構中的樹儲存結構
圖1 樹的示例 圖 1 a 是使用樹結構儲存的集合 的示意圖。對於資料 a 來說,和資料 b c d 有關係 對於資料 b 來說,和 e f 有關係。這就是 一對多 的關係。將具有 一對多 關係的集合中的資料元素按照圖 1 a 的形式進行儲存,整個儲存形狀在邏輯結構上看,類似於實際生活中倒著的樹 圖...
資料結構(C語言)樹的儲存結構
1 雙親表示法 實現 定義結構陣列,存放樹的結點,每個結點包含兩個域 資料域 存放結點本身資訊 雙親域 指示本結點的雙親結點在陣列中的位置 陣列下標 data parent0r 11a0 2b03 c04d 15e1 6f37 h68h 69k6 特點 找雙親容易,找孩子難 實現 typedef s...