《資料結構》樹的儲存結構2019 10 15

2021-09-28 16:28:15 字數 981 閱讀 1244

定義: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...