1)將二叉樹按完全二叉樹編號。
2)將二叉樹的結點按照編號順序儲存到一維陣列中
//前序遍歷
void
preorder
(int root,
char data)
return;}
//中序遍歷
void
inorder
(int root,
char data)
return;}
//後序遍歷
1)結點結構
其中,data:資料域,存放該結點的資料資訊;
lchild:左指標域,存放指向左孩子的指標;
rchild:右指標域,存放指向右孩子的指標。
2)二叉樹的建立
為了表示二叉樹中的邏輯關係,我們將二叉樹補充為原二叉樹的擴充套件二叉樹,如圖所示。
步驟:1.按擴充套件前序遍歷序列輸入結點的值
2.如果輸入結點值為「#」,則建立一棵空的子樹
3.否則,根結點申請空間,將輸入值寫入資料域中
4.以相同方法的建立根結點的左子樹
5.以相同的方法建立根結點的右子樹
方法一:
有返回值的函式進行建立
template
<
class
t>
bitree ::
bitree()
template
<
class
t>
binode
* bitree ::
creat()
return root
}
方法二:
無返回值的函式進行建立
template
<
class
t>
void bitree
::creat
(binode
*&root )
}
資料結構之樹的儲存結構
樹是一種一對多的資料結構,這個一對多很好解釋,就比如乙隻狗媽媽,會有多隻小奶狗,這不就有一對多的意思嗎!樹的根節點有且只有乙個,就比如小奶狗們只有乙個親狗媽。那麼圖上的 b c d e 都是樹的根節點 a 的孩子 總之,樹就是有很多結點構成,只不過這些結點在樹中會有不同的稱呼,來分析一下下圖 度 結...
《資料結構》樹的儲存結構2019 10 15
定義 1 只有乙個根結點 2 其餘結點為幾個不相交的有限集,他們本身也是一棵樹,且被稱為根的子樹。樹的定義就用到了遞迴的方法。幾個概念 結點的度 該結點擁有的子樹的數量 葉結點 度為0的結點 樹的度 結點度的最大值 層次 根結點為第一層,其孩子為第二層,以此類推。深度 結點的最大層數 高度 數量和深...
資料結構中的樹儲存結構
圖1 樹的示例 圖 1 a 是使用樹結構儲存的集合 的示意圖。對於資料 a 來說,和資料 b c d 有關係 對於資料 b 來說,和 e f 有關係。這就是 一對多 的關係。將具有 一對多 關係的集合中的資料元素按照圖 1 a 的形式進行儲存,整個儲存形狀在邏輯結構上看,類似於實際生活中倒著的樹 圖...