shunting-yard

    0熱度

    1回答

    如何將此代碼中的字符轉換爲字符串? InfixToPostfix必須能夠接受字符串而不是字符,因此它可以接受兩位數字和空格。有什麼建議麼?提前致謝。 import java.util.Stack; public class InfixToPostfix { private Stack operators = new Stack(); public InfixToPostfix() {

    0熱度

    1回答

    我試圖找出當實現shuting代碼算法時,不同運算符的優先級是什麼。 我的抽象語法樹在中綴,我正在使用shuting碼算法進行評估。這對算術運算符來說很好。我面臨的問題是我不知道所有其他運營商的優先級。 從https://en.wikipedia.org/wiki/Shunting-yard_algorithm我可以看到,這些操作符的以下情況屬實。數字是優先。 ^ 4 * 3 / 3 + 2

    1熱度

    1回答

    如何將標準Shunting Yard Algorithm修改爲包含'wall'符號,|,表示函數參數的結尾?也就是說,支持修改後綴符號(Reverse Polish Notation),允許使用任意數量的參數。 一對夫婦的改性後綴表示法的例子: ˚F(1,2)9⟶| 1 2 f 9 + f(1,2,3)+9⟶| 1 2 3 f 9 + 請,我正在尋找實際的修改,而不只是想法如何做到這一點。 調度場

    0熱度

    3回答

    ,以創建一個計算器,我使用了Java程序的調度場算法(https://en.wikipedia.org/wiki/Shunting-yard_algorithm)。我差不多完成了,但我仍然需要執行功能。我遇到了一個問題:我想讓計算器在放到一起時自動乘以像x和y這樣的變量 - 例如:計算器將xy轉換爲x * y。另外,我希望計算器將(x)(y)轉換爲(x)*(y)和x(y)爲x *(y)。我已經做了

    2熱度

    1回答

    我正在構建一個高級數學解析器,想知道Shunting-Yard和其他可用解析器算法(如「Descent Parser」)知道我更喜歡將公式存儲在RPN記法中。 由於提前,

    1熱度

    1回答

    關於上下文,請首先閱讀this question about Ternary Operators。 我正在構建自己的編程語言,允許您定義自定義運算符。因爲我希望它儘可能少的編譯器的內置插件越好,它應該允許自定義的三元運營商的定義,最好的形式 infix operator ? : { precedence 120 } 我(手寫)表達式解析器會變成嵌套三元運營商進入操作符分隔的操作數列表。 a ?

    2熱度

    1回答

    : #!/usr/bin/env python import sys import string import operator import signal class InvalidStackError(Exception): pass class BadParenError(Exception): pass def hook_ctrl_c(signal, frame):

    1熱度

    1回答

    假設我有一個條件形式爲「(a> b)或(c < d)」。我怎樣才能將它轉換成逆波蘭表示法並計算它?我試着將「和/或」標記設置爲最低優先級,並得到「a b c OR> d <」。這樣對嗎? 基本上我想添加條件功能到分路碼算法的這個實現; http://eddmann.com/posts/shunting-yard-implementation-in-java/

    0熱度

    2回答

    除了Dijkstra分流碼算法將中綴轉換爲RPN之外,有沒有其他方法?我試圖通過將其與另一種轉換方法進行比較來研究分流碼算法的弱點和優點。任何鏈接到分流碼算法的日記非常感謝。謝謝

    2熱度

    1回答

    如何擴展分流碼算法,它最初是爲二元運算符支持條件三元運算符(「a?b:c」)? 我還沒有看到這個答案,我有一個,所以我張貼它。