順序存儲結構
該方法是把二叉樹的所有結點按照一定的線性次序存儲到一片連續的存儲單元中
(
在一棵n個結點的完全二叉樹中
【例】如下圖所示
(
完全二叉樹中除最下面一層外
①若i>
②若
③若
④若i為奇數且不為
⑤若i為偶數且小於n
將完全二叉樹中所有結點按編號順序依次存儲在一個向量bt[
其中
bt[
bt[
【例】表
(
① 將一般二叉樹添上一些
② 為了用結點在向量中的相對位置來表示結點之間的邏輯關系
③ 將結點按編號存入向量對應分量
【例】圖
(
① 對完全二叉樹而言
② 一般的二叉樹采用順序存儲結構時
【例】最壞的情況下
③在對順序存儲的二叉樹做插入和刪除結點操作時
【參見參考書】
鏈式存儲結構
二叉樹的每個結點最多有兩個孩子
typedef char DataType
typedef struct node{
DataType data
Struct node *lchild
}BinTNode
typedef BinTNode *BinTree
在一棵二叉樹中
【例】下面左圖所示二叉樹的二叉鏈表如下面中圖所示
注意
① 一個二叉鏈表由根指針root惟一確定
② 具有n個結點的二叉鏈表中
經常要在二叉樹中尋找某結點的雙親時
【例】上面右圖是上面左圖所示的二叉樹的帶雙親指針的二叉鏈表
注意
二叉樹存儲方法的選擇
From:http://tw.wingwit.com/Article/program/sjjg/201311/23266.html