shunting-yard

    8熱度

    1回答

    有沒有更好的方法來處理一元「 - 」在將中綴表達式轉換爲後綴? 顯而易見的是每個一元前綴「 - 」和一個0.有沒有人知道更好的實現?謝謝!

    0熱度

    1回答

    這裏是我的代碼,使用分流碼將中綴轉換爲ron。我知道該算法的工作原理,我沒有問題。 但是當我運行這只是沒有發生。 當我調試它,我得到未知錯誤的堆棧初始化線 #include <iostream> #include <string> #include <cstring> #include <cstdlib> #include <stack> using namespace std ; v

    4熱度

    1回答

    我在Java中實現Shunting Yard Algorithm,作爲我的AP計算機科學類的一個側面項目。我用Javascript實現了一個簡單的算法,只有基本的算術表達式(加法,減法,乘法,除法,求冪)。爲了將它拆分成一個數組,我所做的是找到每個運算符(+-*/^)以及數字和括號,然後在它們周圍放置一個空格,然後將其分割成一個數組。例如,中綴字符串4+(3+2)將被製作爲4 + (3 + 2),

    1熱度

    1回答

    我做了Infix到Postfix轉換器,並認爲它的工作原理,但當我回去並向我的老師展示他測試的例子之一,結果是錯誤的。 :| 如果有人能夠幫助我解決這個問題,並且讓我知道什麼是錯的,我將不勝感激。 我跳過了按鈕部分的零件用於輸入數字,只公佈了其對重定向console.writeline我的文本框和按鈕,做所有的工作休息, private void button20_Click(object sen

    0熱度

    1回答

    我在正確的工作順序調度場算法,但我注意到一個特殊的怪癖: 1 + (3 * (4 + 5)) 正確解析到 1 3 4 5 + * +, 但 1 + (3 * (4 + 5)) 失敗,並解析爲 1 * + 5)) + 我想讓它解析secon d問題,以便結果與第一個相同。我怎樣才能做到這一點? 注: 我得出我的算法從維基百科: http://en.wikipedia.org/wiki/Shuntin

    0熱度

    2回答

    我正在嘗試開發基於Wikipedia page的僞代碼的Shunting-Yard算法。 一個操作的規定: 如果令牌是函數參數的分隔符(例如逗號)[...] 可能有人請澄清這是什麼意思?

    1熱度

    1回答

    分段錯誤我一直在研究一個基本的計算器,可以採取複雜的數學表達式,如:(2-4)* 7 /(3/4)等etc等 我正在使用分流碼算法的實施... 我在一個Linux操作系統。使用gdb調試器我已經將一個分段錯誤隔離爲一個函數。 使用cout語句我已經進一步隔離它到一個單行..但我無法理解爲什麼這條線給我一個段錯誤..我會給更多的信息在哪裏在一瞬間,首先這裏是一些代碼.. (8*2) 輸出:: 1 2

    0熱度

    2回答

    給出的表達式: 1/2/3/4*5 它到達表達式的結尾,並嘗試乘出圖4和5第一因爲它開始彈出堆棧這是錯誤的。我不一定在做RPN,而只是當場評估。我怎樣才能防止這一點? // Expression was completely read - so we should try and make sense of // this now while (operatorStack.size() !

    0熱度

    2回答

    我一直在研究我的數學解析器,並且我意識到我正在使用的一些代碼無法處理非整數的指數。我使用的代碼似乎在int下工作得很好,但是沒有double。 else if ([[token stringValue] isEqualToString: @"^"]) { NSLog(@"^"); double exponate = [[self popOperand] intVa

    3熱度

    4回答

    確定的護理,所以I/P到算法中會是這樣的表達式: a+(-b) a*-b+c 即任何表達式,一個標準的C語言編譯器將支持。 現在我已經將輸入格式化爲一個標記流,這些標記包含無論是運算符還是操作數的信息。 該算法應該採取這一點,並給我一個我可以評估的後綴表達式。 如果我使用標準轉換ALGO,我不能的一元和二元運算之間進行區分。 就像一個*( - b)會給我ab- *,這會以錯誤的方式評估。