地方政府公務人員四等-電子工程類科計算機概要108 年第 20 題單選題
若對以下二元樹(binary tree)採用前序走訪(preorder traversal),則走訪順序為何?
A
/ \
B C
/\
D E
ADBEAC
BABCDE
CABDEC正確答案
DDEBCA
C正確答案
前序走訪的口訣是「中左右」,從根節點出發,先印出自己,再走左子樹,最後走右子樹,順序為 ABDEC。
為什麼答案是 C
這是「前序走訪(Preorder)」的結果,順序為「中、左、右」,即 A -> B -> D -> E -> C。
載入中…
完整詳解
Pro · 無限重點 前序走訪的口訣是「中左右」,從根節點出發,先印出自己,再走左子樹,最後走右子樹,順序為 ABDEC。
前序走訪第一個一定是根節點 A,接著走左子樹 B,再走 B 的左子樹 D,所以開頭是 ABD,直接秒選 C。
逐選項分析
A✕
這是「中序走訪(Inorder)」的結果,順序為「左、中、右」,即 D -> B -> E -> A -> C。
B✕ 陷阱
這是「層序走訪(Level-order)」的結果,由上而下、由左至右一層層讀取,即 A -> B -> C -> D -> E。
C✓ 正確
這是「前序走訪(Preorder)」的結果,順序為「中、左、右」,即 A -> B -> D -> E -> C。
D✕
這是「後序走訪(Postorder)」的結果,順序為「左、右、中」,即 D -> E -> B -> C -> A。
二元樹走訪方式總整理
| 走訪方式 | 走訪順序 | 本題結果 | 記憶口訣 |
|---|
| 前序 (Preorder) | 中 -> 左 -> 右 | A B D E C | 根節點在最前面 |
| 中序 (Inorder) | 左 -> 中 -> 右 | D B E A C | 根節點在中間 |
| 後序 (Postorder) | 左 -> 右 -> 中 | D E B C A | 根節點在最後面 |
| 層序 (Level-order) | 由上而下,由左至右 | A B C D E | 一層一層看 |
初學者極易將「前序走訪」與「層序走訪」搞混。層序走訪是按階層ABCDE排下來,而前序走訪屬於深度優先搜尋(DFS),必須把左子樹全部走完(ABD...),才會去走右子樹。