後綴到綴談話
回答
後綴到綴:
5 x y -/x y + 3^7/+
STEP
5的xy -/
A)5xy-/= 5(XY)/ =(5 /(XY))
XY +
B)的xy + =(X + Y)
(X + Y)3^
B.1)(X + Y)3^=((X + Y)^ 3)
現在,(5 /(XY))((X + Y)^ 3)7/+
=(5 /(XY))(((X + Y)^ 3)/ 7)+ =(5 /(XY))+(((X + Y)^ 3)/ 7)
POSTFIX和PREFIX是表達在其中使用沒有括號。運算符的優先級按表達式出現的順序決定,因此評估表達式不需要搜索下一個操作來執行 - FAST。在運營商的綴表達式優先
雖然通過支架覆蓋。因此括號在中綴表達式中 - 需要搜索要執行的操作,例如,A + B%D - 因此SLOW。
這就是轉換在計算機科學中有用的原因。
這不是代碼,但方式,你應該擴展後綴,以中綴::
5 XY -/XY + 3^7/+
5(XY)/ XY + 3^7/+
(5 /(XY))XY + 3^7/+
(5 /(XY))(X + Y)3^7/+
(5 /(XY))((X + Y)^ 3)7/+
(5 /(XY))(((X + Y)^ 3)/ 7)+
(5 /(XY))+(((X + Y)^ 3)/ 7)
它是相當直截了當:
- 您讀取的參數,並決定是否它是一個值或一個變量。如果是這樣,你可以在棧上推送參數。如果不是它是一個操作員。
- 如果你有一個運營商,創建由操作員爲根,堆作爲其子的許多參數的樹。你推動堆棧上的樹。
- 當你想打印你做的堆棧的頂部的有序散步中間符號(原定位後的符號僅僅是同一棵樹的後序的步行路程)。
在C處理這個++我創建一個基類(Expression
)與派生類代表不同類型的節點(Value
,Variable
,和BinaryOperation
)的和保持std::stack<std::shared_ptr<Expression>>
。編碼這主要是打字練習。
與其他答案相比,您提供了更通用的方法,因此可以用於應對任何後綴表示法。 –
上面的答案只是給出的表達式的轉換,而這個答案是進行轉換的實際方式和邏輯。比我的好。應該被接受。 – Abhineet
- 1. 變量後綴前綴到後綴
- 2. C++中綴到後綴
- 3. 堆棧中綴到後綴
- 4. 從中綴到後綴
- 5. 中綴後綴
- 6. TextInputLayout後綴/前綴
- 7. Identyfying前綴後綴
- 8. setNames後綴前綴
- 9. 用實數中綴到後綴
- 10. 中綴到後綴表達式
- 11. 從後綴堆棧轉換到中綴
- 12. 找到後綴以前綴表達式
- 13. Bukkit前綴和後綴
- 14. 中綴後綴轉換器
- 15. 綴以後綴的方式
- 16. 轉換綴以後綴
- 17. 球拍後綴爲前綴
- 18. 最長前綴後綴
- 19. Cmake庫前綴/後綴
- 20. 使URL後綴前綴
- 21. 轉換綴以後綴
- 22. 後綴數組與後綴樹
- 23. 從後綴樹生成後綴
- 24. 使用後綴數組搜索後綴
- 25. Trie與後綴樹與後綴數組
- 26. 「C - C++」的笑話約後綴/前綴操作訂貨
- 27. 正則表達式如何找到「unconsecutive後綴」的後綴
- 28. 在電話前綴
- 29. 追加後綴到姓名
- 30. PHP力傳輸到後綴
http://en.wikipedia.org/wiki/Reverse_Polish_notation – 2012-10-16 06:11:50
來自@Grijesh Chauhan的回答無疑是正確的,但我可能知道「不接受」我的答案的原因。它是錯的還是描述性較低?所以,我可以改進它以改善。 – Abhineet