階層式方式(level-ordering)解法:
題目:
已知二元樹可以用一維陣列來儲存。請依此概念設計一方法,儲存以下三元樹於如
下之一維陣列中。
解答:
運用※隱含式陣列表示法(Implicit array)得
1.Root為A[0]
2.A[i]的父節點[A((i-1)/3)]
3.A[i]3個子節點A[3i+1]、A[3i+2]、A[3i+3]
Index
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
data
|
A
|
B
|
C
|
D
|
E
|
-
|
F
|
-
|
G
|
-
|
H
|
I
|
J
|
串列表示法:
struct treenode
{
datatype data (節點名稱/資料)
struct treenode lchild, rchild; (無父指標)
左指標 右指標
}
(2)節點A[i]的
EX:
※隱含式陣列表示法(Implicit array):
將node加以編號儲存在陣列中,能以公式推導出tree中父子節點關係(使用level-ordering層次追蹤)
參考:
1.
http://wwwc.moex.gov.tw/ExamQuesFiles/Question/100/100120_35850.pdf
2.
http://www.get.com.tw/goldensun/exam/answer/100KP/PDF-K/K38.pdf
將node加以編號儲存在陣列中,能以公式推導出tree中父子節點關係(使用level-ordering層次追蹤)
i=5,
A[5]的左子node=A[2*5]=A[10]
A[5]的右子node=A[2*5+1]=A[11]
參考:
1.
http://wwwc.moex.gov.tw/ExamQuesFiles/Question/100/100120_35850.pdf
2.
http://www.get.com.tw/goldensun/exam/answer/100KP/PDF-K/K38.pdf
沒有留言:
張貼留言
如果久久沒有反應,請直接寄信
應該是我不太會用google blogger 導致有留言過久未處理><
實在深感抱歉..