逆波蘭表示式

2022-03-30 18:12:39 字數 1100 閱讀 5207

#include#includeusing namespace std;

templateclass stack

t top()

void pop()

bool isempty()

void push(t b)

private:

t a[100];int top;

}; void chpost(char inorder,char post,int& m)//將中綴表示式轉換為字尾表示式,引數m跟蹤字尾表示式長度

if(inorder[i]=='(')czf.push(inorder[i]);//若為『(』直接壓入堆疊

if(inorder[i]=='+')//若為『+』與棧頂比較優先順序,較低則將棧頂操作符加到陣列中,在將『+』壓棧

else

}if(inorder[i]=='-')//若為『-』與棧頂比較優先順序,較低則將棧頂操作符加到陣列中,將『-』壓棧

else

}if(inorder[i]=='*'||inorder[i]=='/')czf.push(inorder[i]);//若為『*』或『/』直接壓棧

if(inorder[i]==')')//若遇到『)』將棧中的操作符依次彈出直到遇到『(』結束

czf.pop();//彈出『(』}}

while(!czf.isempty())//將棧中剩餘元素依次彈出到字尾表示式陣列中

}int yusuan(char post,int n)//通過字尾表示式求值

if(post[i]=='-')

if(post[i]=='+')

if(post[i]=='*')

if(post[i]=='/')

} result=ss.top();//得到最後棧頂元素

ss.pop();//清空棧

return result;

}int main(void)

char po[100];int n=0;

chpost(in,po,n);

cout<<"字尾表示式為:";

for(int j=0;jcout

}

波蘭表示式 逆波蘭表示式

中綴表示式是最常見的運算表示式,如 3 5 2 6 1 波蘭表示式又稱為字首表示式,它是由中綴表示式經過一定的方式轉換來的 比如中綴表示式為 3 5x 2 6 1 對應的字首表示式為 3 x 5 2 6 1 對於中綴表示式從右向左遍歷轉換為字首表示式,中途要是用棧進行儲存 轉換規則如下 波蘭表示式 ...

波蘭逆波蘭表示式

實現乙個基本的計算器來計算簡單的表示式字串。表示式字串只包含非負整數,算符 左括號 和右括號 整數除法需要 向下截斷 你可以假定給定的表示式總是有效的。所有的中間結果的範圍為 231,231 1 class solution s2.push s.substr l,r l l r 碰見符號 else ...

波蘭表示式與逆波蘭表示式

2018年09月03日 11 29 15 jitwxs 閱讀數 70 標籤 波蘭 字首 更多 個人分類 演算法與資料結構 常見的算術表示式,稱為中綴表示式,例如 5 6 4 2 3波蘭表示式也稱為字首表示式,以上面的例子為例,其波蘭表示式為 5 6 4 2 3中綴表示式轉換字首表示式的操作過程為 1...