shunting-yard

    5熱度

    4回答

    我一直在尋找的維基頁面:http://en.wikipedia.org/wiki/Shunting-yard_algorithm 我使用的代碼示例建立的第一個部分,基本上我現在可以打開: 3 + 4 * 2/(1 - 5)^2^3到3 4 2 * 1 5 − 2 3^^/+ 但我不知道如何再使用3 4 2 * 1 5 − 2 3^^/+獲得3.00012207 而且示例代碼和解釋上的維基AR對我沒

    4熱度

    1回答

    我正在研究什麼是本質上的調車碼算法,但將中綴移動到前綴而不是RPN 我試圖保留括號,而且我有一段時間的魔鬼。當然我的代碼是 String s = inFixList.get(i); Stack<Character> opStack = new Stack<Character>(); Stack<Character> solutionStack = new Stack<Ch

    1熱度

    2回答

    我試圖用Shunting Yard(SY)算法解析語法。語法包括下列命令(他們有很多很多人雖然!) a + b // a and b are numbers setxy c d //c,d can be numbers setxy c+d b+a //all numbers 從本質上講,setxy是一個功能,但它並不期望任何函數參數的分隔符。由於缺少parens和函數參數分隔符,這使得通過

    2熱度

    2回答

    我正在尋求實現Shunting-yard Algorithm,但我需要一些幫助,找出將字符串拆分爲令牌的最佳方式。 如果您注意到,算法的第一步是「讀取令牌」。這不完全是一件不平凡的事情。令牌可以由數字,運算符和parens組成。 如果你正在做的事情,如: (5 + 1) 一個簡單的string.split()會給我的標記{ 「(」 陣列「,5 「,」+「,」1「,」)「}。 然而,它變得更加複雜,

    15熱度

    5回答

    我一直致力於在JavaScript中爲類實現Shunting-Yard算法。 這是到目前爲止我的工作: var userInput = prompt("Enter in a mathematical expression:"); var postFix = InfixToPostfix(userInput); var result = EvaluateExpression(postFix);

    1熱度

    1回答

    我正在實際上在Common Lisp上自己編寫一些東西,實現Shunting-yard算法。我認爲它沒問題,即使它出來相當醜陋,如果我懷疑它的Lispyness,但是在測試REPL中的函數時,我會在標題中看到錯誤。 代碼如下,測試用例爲(shunting-yard '(3 + 5))。 (defparameter *output-queue* nil) (defparameter *operat

    2熱度

    1回答

    我正在Clojure中實現一箇中綴計算器,該工具從我開始實施Dijkstra的調車碼算法開始。我認爲我把它做得很好,但是開玩笑對我來說,它似乎並不能很好地處理操作員。致電(shunting-yard "3 + 5")=>(\3)。就這樣。有人能告訴我在這裏處理操作符時出了什麼問題嗎? (import '(java.lang.Character)) (defn operator? [sym]

    0熱度

    1回答

    所以我正在使用Shunting-Yard算法處理來自XML字符串的一些數學運算。訣竅是我想通過使用逗號分隔列表來允許隨機值的生成。例如... ((3 + 4) * 12) * (2, 3, 4, 5)) 我已經有一個基本的Shunting-Yard處理器工作。但是我想在處理表達式之前預處理字符串以從列表中隨機選擇一個值。這樣,我可能會結束: ((3 + 4) * 12) * 4) 分流碼的

    6熱度

    4回答

    我已經在java中成功實現了分流碼算法。算法本身很簡單,但是我在分詞器方面遇到了麻煩。目前該算法適用於我希望排除的一切事物。我怎麼能告訴減法之間的差值( - )和負極( - ) 如4-3是減法 但-4 + 3爲負 我現在知道如何找出何時應該一個負數,當它應該是一個負數,但算法應該放置在哪裏,因爲如果你使用它像一個函數它不會總是工作,例如 3 + 4 * 2/- (1 - 5)^ 2^3 當1-5變

    3熱度

    2回答

    我正在實施shunting-yard algorithm。我在檢測運營商缺少參數時遇到問題。 wikipedia entry在這個主題上是非常糟糕的,他們的代碼也崩潰了下面的例子。 例如3 - (5 +)不正確,因爲+缺少參數。 在算法到達)之前,操作堆棧包含- (+,操作數堆棧包含3 5。然後,它是這樣的: 它彈出+從運營商棧 發現+是一個二元運算符 彈出兩個操作數,應用運營商和推結果(8)到操