問題詳情

50. 撰寫程式時,想要將「中序式」(如 A/3+B*C)轉換為「後序式」最好採用下列何種資料結構?
(A) 網狀(network)
(B) 佇列(Queue)
(C) 堆疊(stack)
(D) 鏈結串列(Linked List)

參考答案

答案:C
難度:適中0.593
書單:沒有書單,新增

用户評論

小彥子老師】評論

後序表示式又稱為逆向波蘭表示式(reverse polish notation),是由波蘭的數學家盧卡謝維奇提出,例如 (a + b) * (c + d),表示為後序表示式時是 a b + c d + *。想以人工轉換計算後序式的話,可以使用括號法,將運算子兩旁的運算元,依先後順序全部括號起來,然後將右括號取代為左邊最接近的運算子(從最內層括號開始),最後去掉全部的左括號就可以完成。例如:a + b * d + c / d((a + (b * d)) + (c / d))a b d * + c d / +另一個方式是堆疊法,使用迴圈取出中序式的元素,遇運算元直接輸出,遇到運算子與左括號進行堆疊,堆疊中運算子優先順序若大於等於讀入的運算子優先順序,直接輸出堆疊中的運算子,再將讀入的運算子置入堆疊;遇右括號輸出堆疊中的運算子至左括號。