地特四等
105年
[電子工程] 計算機概要
第 14 題
假設圖(a)中的二元樹,其每一個節點以圖(b)中的 C 語言結構實作。若我們呼叫圖(c)中的 unknown 程式並傳人圖(a)中的根節點,則列印出來的字串為下列何者?
- A xyz
- B zxy
- C yzx
- D xzy
思路引導 VIP
請仔細觀察 unknown 函式中,printf 語句相對於那兩次遞迴呼叫(左子樹與右子樹)的執行「先後順序」。如果我們將每個節點看作一個待辦清單,程式碼是要求我們先完成「所有的部屬工作」後再「回報進度」,還是先「回報進度」再交辦工作?這對字串產生的先後位置會有什麼決定性的影響?
🤖
AI 詳解
AI 專屬家教
現場驗證
- 沒什麼灰塵:哼,小鬼。你做得還算可以,能準確追蹤遞迴函式(Recursive Function)的執行堆疊(Call Stack),判斷出字串輸出的順序沒有多餘的垃圾。這代表你對資料結構的底層邏輯,至少沒有搞砸。這是身為一名合格工程師,最基本的要求。
- 清理目標:這道題的核心,無非就是二元樹走訪(Binary Tree Traversal)。從你得出的結果 $xzy$ 來看,那段
unknown程式的執行路徑很明顯:
▼ 還有更多解析內容