樹的度是樹內各節點的度的最大值
如果樹中結點的各子樹從左向右是有序的,子樹間不能互換位置,則稱該樹為有序樹,否則為無序樹。
取一塊連續的記憶體空間,在層次每個節點的同時,各自都附加乙個記錄其父節點位置的變數
#
define
tree_size
100//巨集定義樹中結點的最大數量
#define
telemtype
int//巨集定義樹結構中資料型別
typedef
struct
ptnode
ptnode;
typedef
struct
ptree;
例如,使用雙親表示法儲存圖 1(a)中的樹結構時,陣列儲存結果為(b):
當演算法中需要在樹結構中頻繁地查詢某結點的父結點時,使用雙親表示法最合適。當頻繁地訪問結點的孩子結點時,雙親表示法就很麻煩,採用孩子表示法就很簡單
孩子表示法: 把每個節點的孩子節點排列起來,以單鏈表作儲存結構,則n個節點有n個孩子鍊錶,如果是葉子節點則單鏈表為空。然後n個頭指標有組成乙個線性表,採用順序儲存結構,存放進乙個一維陣列中
#
define
telemtype
int#
define
tree_size
100//孩子表示法
typedef
struct
ctnode
*childptr;
typedef
struct
ctbox;
typedef
struct
ctree;
使用孩子表示法儲存的樹結構,正好和雙親表示法相反,適用於查詢某結點的孩子結點,不適用於查詢其父結點。
將雙親表示法和孩子表示法結合起來
使用鏈式儲存結構儲存普通樹。鍊錶中每個結點由 3 部分組成:
其中孩子指標域,表示指向當前結點的第乙個孩子結點,兄弟結點表示指向當前結點的下乙個兄弟結點。
#
define
elemtype
inttypedef
struct
csnode
csnode,
*cstree;
通過孩子兄弟表示法,普通樹轉化為了二叉樹,所以孩子兄弟表示法又被稱為「二叉樹表示法」或者「二叉鍊錶表示法」。
樹的雙親表示法、孩子表示法和孩子兄弟表示法
一棵樹為樹,兩棵樹及以上則稱為森林
什麼是B樹?
b樹,是乙個m叉平衡查詢樹。如果m為2即為二叉查詢平衡樹,一般m都是大於2的。其特性如下 資料項儲存在樹的葉子節點。所有樹的葉子節點都在相同的深度上,並由l 2 小數字進1 和l之間個資料項。非葉節點儲存直到m 1個關鍵字以指示搜尋的方向 關鍵字i代表子樹i 1中的最小的關鍵字。樹的根或者一片樹葉節...
什麼是B 樹?
b 樹是為磁碟或其他直接訪問輔助裝置而設計的一種m叉平衡查詢樹,其特性如下 每個節點m個關鍵字和m棵子樹,每個關鍵字對應乙個子樹。除根節點外,其餘所有節點的關鍵字數在m 2 小數字進1 和m之間 根節點的關鍵字數在 1,m 之間。所有的資料項,都是按照大小順序存放在同一層的葉子節點中,各葉子節點間用...
20200316 什麼是樹
這裡的樹指得是資料結構中的樹。樹是一種抽象的資料結構。是一類資料的集合,這些資料組成乙個樹的形狀。例如遊戲中的技能樹,每個技能都有很多子技能,但每個子技能只有乙個父技能。根節點 沒有父節點的節點稱為根節點。子節點父節點 兄弟節點 堂兄弟節點 節點的祖先 節點的子孫 節點的層次 節點的深度 樹的深度 ...