#include
using namespace std;
#define max 30
struct stack
;void initstack(stack &s)
char pop(stack &s)
void push(stack &s,char c)
char top(stack &s)
int copare(char a,char b)
void main()
else if(str[i]=='+' || str[i]=='-' || str[i]=='*' || str[i]=='/'|| str[i]=='('|| str[i]==')')
else//出棧,直至s中的比str[i]優先順序低,然後再把str[i]壓入棧中
pop(s1);//'('不放入新字串中
}else//沒有括號的情況
push(s1,str[i]);}}
}}//讀完字串後把棧中剩下來的全部複製到新字串中
while(s1.top!=-1)
cout<
}
中綴轉字尾
棧的特性 後進先出 last in first out 資料結構 中綴 9.11 3 1 5 分離數字與運算子 9.11 3 1 5 字尾 9.11 3 1 5 中綴轉字尾過程 當前元素為數字,輸出,作為字尾表示式的一部分 如果當前運算子,比棧頂運算子優先順序低 小於等於 時,將棧頂元素輸出,作為字...
中綴轉字尾(棧)
字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字首先放入棧中,此時棧如下所示 2 接著讀到 則彈出3和2,執行3 2,計算結果等於5,並將5壓入到棧中。3 讀到8,將其直接放入棧中。4 讀到 彈...
中綴轉字尾及字尾求值
中綴表示式轉字尾表示式 include include include include include include includeusing namespace std const int maxn 1000 10 typedef char typename struct node typede...