[爆卦]二元樹排序是什麼?優點缺點精華區懶人包

為什麼這篇二元樹排序鄉民發文收入到精華區:因為在二元樹排序這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者seal0112 ()看板Grad-ProbAsk標題Re: [理工] 一題資料結構二元樹排序時...

※ 引述《lwhs (lwhs)》之銘言:
: 一個二元樹有10個節點
: 後序 LRD 依序為 D A H F J I E G B C
: 中序 LDR 依序為 D C A B E H F I J C
: 請畫出此二元樹 解答 Binary tree 如下:
: 小弟比較困惑的地方是 G E 這邊我有點轉不過來@@
: C
: / \
: D B
: / \
: A G
: /
: E
: \
: I
: / \
: F J
: /
: H
: 還有像這種考法的答案是不是都不唯一?
: 假如一個邏輯錯後面全錯了!?
: 想請問高手的思考模式? 感謝!!

後序 LRD D A H F J I E G B |C| (ROOT為C)
中序 LDR D |C| A B E H F I J G
切完後可得左子樹只有D一個點

左子樹 右子樹 ROOT
後序 D A H F J I E G B |C|

左子樹 ROOT 右子樹
中序 D C A B E H F I J G


可得到 C 這棵binary tree
/ \
D ABEHFIJG





因為左子樹只有一個點
所以只對這棵binary tree之右子樹做切割
LRD之右子樹 A H F J I E G B
LDR之右子樹 A B E H F I J G

由LRD得知右子樹之root為B
再由LDR可得知左子樹為A 右子樹為E H F I J G

左子樹(L) 右子樹(R) ROOT(D)
LRD A H F J I E G |B|
左子樹(L) ROOT(D) 右子樹(R)
LDR A |B| E H F I J G

可得到 C
/ \
D B
/ \
A EHFIJG




此時以B為ROOT之左子樹只有A一個點
只對這棵binary tree之右子樹做切割
LRD之右子樹 H F J I E G
LDR之右子樹 E H F I J G

由LRD得知右子樹之root為G
再由LDR可得知左子樹為EHFIJ 右子樹為空

左子樹(L) 右子樹(R) ROOT(D)
LRD H F J I E 空 |G|
左子樹(L) ROOT(D) 右子樹(R)
LDR E H F I J |G| 空

可得 C
/ \
D B
/ \
A G
/
EHFIJ


此時以G為ROOT之右子樹為空
只對這棵binary tree之左子樹做切割
LRD之左子樹 H F J I E
LDR之左子樹 E H F I J

由LRD得知左子樹之root為E
再由LDR可得知左子樹為空 右子樹為HFIJ

左子樹(L) 右子樹(R) ROOT(D)
LRD 空 H F J I |E|
左子樹(L) ROOT(D) 右子樹(R)
LDR 空 |E| H F I J
可得到 C
/ \
D B
/ \
A G
/
E
\
HFIJ

此時以E為ROOT之左子樹為空
只對這棵binary tree之右子樹做切割
LRD之右子樹 H F J I
LDR之右子樹 H F I J

由LRD得知此右子樹之root為I
再由LDR可得知左子樹為HF 右子樹為J


左子樹(L) 右子樹(R) ROOT(D)
LRD H F J |I|
左子樹(L) ROOT(D) 右子樹(R)
LDR H F |I| J

可得到 C
/ \
D B
/ \
A G
/
E
\
I
/ \
HF J



















此時以I為ROOT之右子樹只有J一個點
只對這棵binary tree之左子樹做切割
LRD之左子樹 H F
LDR之左子樹 H F

由LRD得知root(D)為F
再由LDR可得知左子樹為H 右子樹為空


左子樹(L) 右子樹(R) ROOT(D)
LRD H 空 |F|
左子樹(L) ROOT(D) 右子樹(R)
LDR H |F| 空



可得到 C
/ \
D B
/ \
A G
/
E
\
I
/ \
F J
/
H

此時每個點至多一個值 則完成

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.163.233.43
※ 編輯: seal0112 來自: 1.163.233.43 (03/17 14:01)
lwhs:又一個高手 感謝回答!! ^^ 03/17 14:05

你可能也想看看

搜尋相關網站