利用棧計算字尾表示式
#include
#include
#include
using
namespace
std;
int main()
s.push( num );
--i;
//cout<<"i: "<}
else
if( str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/' )
s.push( res );}}
cout
<<"result: "
0;}
利用棧,把中綴表示式變成字尾表示式#include
#include
#include
#include
using
namespace
std;
int main()
//遇到運算子
else
if( str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/' )
//如果棧不空,判斷當前運算子的優先順序。從棧頂開始,將棧中優先順序 <= 它的都輸出。
else
if( priority[str[i]] <= priority[s.top()] )
s.push( str[i] );
}//如果該運算子優先順序比棧頂高,則壓入棧。
else
}//如果是 ( ,直接壓入棧
else
if( str[i]=='(' )
// 一旦遇到 ) ,從棧頂開始輸出,直到遇到 ( ,左括號不輸出,但彈出
else
if( str[i]==')' )
s.pop();}}
//上面完成之後,如果棧內還有剩餘運算子沒有輸出,都輸出
if( !s.empty() )
cout
<' ';
s.pop();}}
return
0;}
中綴表示式轉為字尾表示式 棧
題目 給乙個中綴表示式 即標準形式的表示式 列印該表示式的字尾表示式。中綴表示式最大的不同就是去掉了表示運算子優先順序的括號。運算元為26個小寫或大寫的英文本母 注意不包括數字和其他字元 操作符為 一共八個。具體見例子見下圖 如下 include include include using name...
棧 中綴表示式轉字尾表示式
中綴轉字尾的演算法 遍歷中綴表示式中的數字和符號 對於數字 直接輸出 對於符號 左括號 進棧 運算符號 與棧頂符號進行優先比較 若棧頂符號優先順序低 此符號進棧 預設棧頂若是左括號,則左括號的優先順序最低 若棧頂符號優先順序高 將棧頂符號彈出 並輸出 直到棧頂的符號優先順序低,然後進棧 右括號 將棧...
中綴表示式 字尾表示式
中綴表示式就是 a b 這樣的,運算子在兩個數的中間 字尾表示式就是 a b 這樣的,運算子在兩個數後面 再細分一下 中綴表示式 字尾表示式 a b c a b c a b c a b c a b c a b c a b c a b c a b c d e a c a b c d e a c emm...