二叉樹的儲存分為順序儲存和鏈式儲存
順序儲存
對於滿二叉樹是非常方便的,沒有空間的浪費,又可以很方便的計算出每乙個結點的左、右孩子及其雙親的下標位置,但是一般的二叉樹不能連續的儲存在一維空間中,所以空結點就占用了一定的空間。
二叉樹的順序儲存結構:
#define max 100
typedef struct
bitree;
鏈式儲存
對於任意二叉樹,除自身結點外,最多有兩個孩子,所以包括:資料域、左孩子域、右孩子域的結點結構
二叉樹的鍊錶結點結構:
typedef struct node
bitnode,*bitree;
建立鏈式儲存的二叉樹:採用擴充套件的先序遍歷:
演算法:讀入結點資料,若是'^',則當前樹置空;否則申請結點空間,存入結點資料,並分別以該結點的左孩子域和右孩子域位址為實參進行遞迴呼叫,建立左、右子樹,同時傳遞左、右子樹指標置於孩子指標域。
void createbitree(bitree * root)
}
二叉鍊錶儲存二叉樹
鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。其中,data域存放某結點的資料資訊 lchild與rchild分別存放指向左孩子和右孩子的指標,當左孩子或右孩子不存在時,相應指標域值為空 用符號 或null表示 利用這樣的結點結構表示的二叉樹的鏈式儲存結...
二叉鍊錶儲存二叉樹
鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。其中,data域存放某結點的資料資訊 lchild與rchild分別存放指向左孩子和右孩子的指標,當左孩子或右孩子不存在時,相應指標域值為空 用符號 或null表示 利用這樣的結點結構表示的二叉樹的鏈式儲存結...
二叉鍊錶儲存的二叉樹
樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。對於每乙個結點至多只有兩課子樹的一類樹,稱其為二叉樹。二叉樹的鏈式儲存結構是一類重要的資料結構,其形式定義如下 而二叉樹的前序 中序遍歷是非常重要的能夠訪問二叉樹所有結點的演算法,下面分別列出一種先序遍歷和兩種中序遍歷的演算法。第一種中序...