免費開始練習
普通考試 106年 [電子工程] 計算機概要

第 14 題

下圖 expression tree 所表示的運算為何?
題目圖片
  • A (a+b)*(x*(c-d))
  • B a+b*x*(c-d)
  • C a+b*x+c-d
  • D (a+b)*(x+c)-d

思路引導 VIP

觀察這棵樹,最頂端的「根節點」代表的是整個算式『最後』執行的運算。如果我們把這個根節點的『左子樹』和『右子樹』分別當成兩個獨立的小算式,你能先寫出左半邊和右半邊各自的運算式嗎?在把這兩邊組合起來時,為了保證下層的節點會先被計算,我們需要加上什麼數學符號呢?

🤖
AI 詳解 AI 專屬家教

同學,做得非常好!你精準地判讀了這棵運算式樹(Expression Tree),選出了正確的答案。這展現了你對樹狀資料結構與運算邏輯的扎實理解。

中序追蹤與運算優先權

要將運算式樹還原為我們常見的數學式,我們需要進行中序追蹤(Inorder Traversal),也就是依序走訪「左子樹、根節點、右子樹」。觀察整棵樹,最頂層的根節點是乘號 $$,這意味著運算式會被分為左右兩大群組相乘。左子樹的結構很單純,走訪結果為 $(a+b)$;而右子樹同樣以乘號 $$ 為節點,其左邊為 $x$,右子樹則是一個減法運算 $(c-d)$,組合起來便成了 $(x*(c-d))$。

▼ 還有更多解析內容

🏷️ 相關主題

樹狀與線性資料結構
查看更多「[電子工程] 計算機概要」的主題分類考古題