Q146.
計算Postfix 運算式之值需要的資料結構是什麼?
電腦軟體設計共同科目 · 乙級 · Q146
難易度分析
2 / 5
本題考查特定運算式求值與資料結構之間的基本對應關係,屬於單純的定義記憶型題目,無複雜陷阱或多重推論過程。
正確答案:①Stack
① Stack:Postfix(後序表示法) 運算式的求值過程依賴 Stack(堆疊) 的 LIFO(後進先出) 特性。遇到運元時將其 push 入堆疊,遇到運算子時從堆疊 pop 出兩個運元進行運算,再將結果 push 回堆疊,最終堆疊頂端即為答案。
錯誤選項解析
- ② Queue:Queue(佇列) 採用 FIFO(先進先出) 的存取模式,適用於 BFS(廣度優先搜尋) 或 排程演算法,無法滿足 Postfix 求值時需要「最後進入的運元優先取出」的需求。
- ③ AVL-Tree:AVL-Tree 是一種 自平衡二元搜尋樹,主要用於維護有序資料以支援高效 搜尋、插入與刪除(時間複雜度 O(log n)),與運算式求值無關。
- ④ Red-Black Tree:Red-Black Tree(紅黑樹) 同樣是 自平衡二元搜尋樹,廣泛應用於 std::map 或 std::set 等關聯式容器的底層實作,不適用於 Postfix 運算式求值。
Learning Tip
"此類題型常考 Infix、Prefix、Postfix 三種表示法之間的轉換與求值方式。切記:Infix 轉 Postfix 使用 Stack,而 Postfix 求值 同樣使用 Stack,兩者的差異在於前者處理的是 運算子優先權,後者處理的是 運元與運算子的依序計算。實務上需特別注意 除數為零 或 堆疊下溢(Stack Underflow) 的邊界條件檢查。"
學員答題分佈
①Stack0%
②Queue0%
③AVL-Tree0%
④Red-Black Tree0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!
相似類型題目
Infix 轉換成Postfix 需要的資料結構,下列何者正確?
假設有一個Postfix 運算式A B + C / C B + D * +,而其值為A=3,B=6,C=3,D=2 。該運算式執行之後,十位數為m,個位數為n,下列那些正確?
將A×(B-C/(D+E))轉成後序式後,最少需要多大容量的堆疊(Stack)才能執行無誤?
下列為含有六個運算元之運算式,此運算式是以後序追蹤(Postorder Traversal)方式表示,其中"*"表示乘法運算,這些後序追蹤所對應的運算樹(Expression Tree),其高度何者是最高?
假設有一個infix 運算式(A – B) * (C + D),我們建造其所對應的運算樹(Expression Tree),下列那些正確?