免費開始練習
地特四等 105年 [電子工程] 計算機概要

第 14 題

假設圖(a)中的二元樹,其每一個節點以圖(b)中的 C 語言結構實作。若我們呼叫圖(c)中的 unknown 程式並傳人圖(a)中的根節點,則列印出來的字串為下列何者?
  • A xyz
  • B zxy
  • C yzx
  • D xzy

思路引導 VIP

請仔細觀察 unknown 函式中,printf 語句相對於那兩次遞迴呼叫(左子樹與右子樹)的執行「先後順序」。如果我們將每個節點看作一個待辦清單,程式碼是要求我們先完成「所有的部屬工作」後再「回報進度」,還是先「回報進度」再交辦工作?這對字串產生的先後位置會有什麼決定性的影響?

🤖
AI 詳解 AI 專屬家教

現場驗證

  1. 沒什麼灰塵:哼,小鬼。你做得還算可以,能準確追蹤遞迴函式(Recursive Function)的執行堆疊(Call Stack),判斷出字串輸出的順序沒有多餘的垃圾。這代表你對資料結構的底層邏輯,至少沒有搞砸。這是身為一名合格工程師,最基本的要求。
  2. 清理目標:這道題的核心,無非就是二元樹走訪(Binary Tree Traversal)。從你得出的結果 $xzy$ 來看,那段 unknown 程式的執行路徑很明顯:
▼ 還有更多解析內容

🏷️ 相關主題

樹狀結構:二元樹、二元搜尋樹與應用
查看更多「[電子工程] 計算機概要」的主題分類考古題