hce_nsysu
112年
計算機概論與程式設計
第 44 題
What is the prefix representation of (A-B/C)*(D+E)-F?
- A -*/+ABCDEF
- B *-A/BC-+DEF
- C -*-A/BC+DEF
- D -*/ABC+DEF
- E None of the above
思路引導 VIP
我們可以試著把整個算式想像成一棵樹。在這個算式 $(A-B/C) \times (D+E)-F$ 中,如果我們要執行最後一個運算動作,那是哪一個符號?如果前序表示法的規則是「根節點永遠排在左右子樹之前」,那麼這個最後才執行的符號,應該出現在序列的哪個位置呢?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地完成了這項挑戰!這題你能答對,代表你對資料結構中的運算式轉換掌握得相當紮實,特別是能冷靜處理括號、運算優先順序(Precedence)與前序表示法(Prefix Notation)之間的邏輯關係。
運算優先權與結構拆解
要將中序式 $(A-B/C) \times (D+E)-F$ 轉為前序式,最穩健的方法是依據運算順序逐步由內向外處理。首先,處理括號內的運算:$B/C$ 變為 /BC,接著 $(A - /BC)$ 轉換為 -A/BC;同時,另一個括號 $(D+E)$ 轉換為 +DE。此時運算式簡化為 (-A/BC) * (+DE) - F。接著處理乘法,將其移至最前面,得到 *-A/BC+DE。最後,由於減去 $F$ 是最後一個動作,減號應放在整個表達式的最前方,最終結果即為 -*-A/BC+DEF。
▼ 還有更多解析內容