二叉樹(一) 建立二叉鍊錶儲存的二叉樹

2021-08-15 02:04:05 字數 666 閱讀 5278

二叉樹的儲存分為順序儲存和鏈式儲存

順序儲存

對於滿二叉樹是非常方便的,沒有空間的浪費,又可以很方便的計算出每乙個結點的左、右孩子及其雙親的下標位置,但是一般的二叉樹不能連續的儲存在一維空間中,所以空結點就占用了一定的空間。

二叉樹的順序儲存結構:

#define max 100

typedef struct

bitree;

鏈式儲存

對於任意二叉樹,除自身結點外,最多有兩個孩子,所以包括:資料域、左孩子域、右孩子域的結點結構

二叉樹的鍊錶結點結構:

typedef struct node

bitnode,*bitree;

建立鏈式儲存的二叉樹:採用擴充套件的先序遍歷:

演算法:讀入結點資料,若是'^',則當前樹置空;否則申請結點空間,存入結點資料,並分別以該結點的左孩子域和右孩子域位址為實參進行遞迴呼叫,建立左、右子樹,同時傳遞左、右子樹指標置於孩子指標域。

void createbitree(bitree * root)

}

二叉鍊錶儲存二叉樹

鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。其中,data域存放某結點的資料資訊 lchild與rchild分別存放指向左孩子和右孩子的指標,當左孩子或右孩子不存在時,相應指標域值為空 用符號 或null表示 利用這樣的結點結構表示的二叉樹的鏈式儲存結...

二叉鍊錶儲存二叉樹

鏈式儲存結構 二叉樹的鏈式儲存結構是指,用鍊錶來表示一棵二叉樹,即用鏈來指示元素的邏輯關係。其中,data域存放某結點的資料資訊 lchild與rchild分別存放指向左孩子和右孩子的指標,當左孩子或右孩子不存在時,相應指標域值為空 用符號 或null表示 利用這樣的結點結構表示的二叉樹的鏈式儲存結...

二叉鍊錶儲存的二叉樹

樹形結構是一類重要的非線性資料結構,其中以樹和二叉樹最為常用。對於每乙個結點至多只有兩課子樹的一類樹,稱其為二叉樹。二叉樹的鏈式儲存結構是一類重要的資料結構,其形式定義如下 而二叉樹的前序 中序遍歷是非常重要的能夠訪問二叉樹所有結點的演算法,下面分別列出一種先序遍歷和兩種中序遍歷的演算法。第一種中序...