帶括號的表示式求值(參考演算法筆記)

2021-09-24 22:37:30 字數 548 閱讀 4512

雖然演算法原理很簡單,但是有幾個地方需要注意。

1.因為左括號是要放入操作符棧中的,所以他的優先順序要設定為0,不然其他運算子來了,就不知道能不能放進去。

2.棧頂運算子優先順序小於op時,才能放入操作符棧。

#include using namespace std;

struct node ;

string str;

stacks;

queueq;

mapop;

void change() else

s.pop();

continue;

} else if(c!='(')

}temp.flag=false;

temp.op=c;

s.push(temp);

} }while(!s.empty())//從操作符棧變成了空棧

}double cal()

}return s.top().num;

}int main(int argc, char **ar**)

演算法 表示式求值

今天在網上看到dijkstra的雙棧算術表示式求值演算法,以前很早的時候知道通過算術棧和數值棧搞定的,這次用oc通過陣列實現了預期的效果.原理參考網上,原作者不詳 程式語言系統一般都內建了對算術表示式的處理,我們可以簡易的模仿一下算術表示式處理機制,思想不變,主要是實現方式略有不同。算術表示式可能是...

帶括號的表示式計算

時間限制 1 s 記憶體限制 256 mb 測試點數 5 題目描述 小明在你的幫助下,破密了ferrari設的密碼門,正要往前走,突然又出現了乙個密碼門,門上有乙個算式,其中只有 0 9 求出的值就是密碼。小明數學學得不好,還需你幫他的忙。用整數除法 輸入格式 共1行,為乙個算式。輸出格式 共1行,...

資料結構實驗 中綴表示式求值 可帶括號

輸入乙個含括號的加減乘除表示式,輸出該表示式的值 思路 輸入表示式,注意 可能帶有括號 運用兩個棧,符號棧和數字棧,首先判斷優先順序,把所有符號的優先順序打表,進行運算,入棧時模仿單調棧,如果當前 優先順序比棧頂元素優先順序小,說明當前元素需要趕快計算,不然會影響以後的結果。例如2 3 2,進來的時...