c 中綴表示式轉字尾表示式並計算

2021-07-27 21:37:51 字數 853 閱讀 6452

#include #include using namespace std;

//棧內優先順序

int isp(char a)

}//棧外優先順序

int icp(char a)

}//計算函式

int cal(int a, int b, char c)

}char in_order_expression[1000];//中綴表示式

char post_order_expression[1000];//字尾表示式

stackcalculation;//計算的時候到棧

stacktmp;//中綴改字尾的時候到過渡棧

int i = 0, j = 0;

int main(int argc, const char * argv)

else

//這裡的i不能++,要保證出棧並輸出之後還能繼續對這個符號進行操作

else if (icp(in_order_expression[i]) < isp(tmp.top()))

//只有左右括號的時候會執行這個操作

else

}cout << i << "次迭代成功" << endl;//做個標記

}

//計算部分

i = 0;

do else

cout << i << "次計算成功" << endl;//做個標記

}while (i < j);

cout << calculation.top() << endl;

return 0;

}

中綴表示式轉字尾表示式並計算字尾表示式的值

中綴表示式轉字尾表示式思路 首先給用到的每個操作符如 等按照他們原本的計算優先順序定義兩個代表優先順序的數值,如instackpri代表入棧之後的優先順序,outstackpri代表入棧之前的優先順序.然後掃瞄表示式,如果是數字,直接輸出,如果是 則將棧頂操作符依次出棧,直到遇到 如果是其他操作符,...

中綴表示式轉字尾表示式,並求值

資料結構之棧的應用 先實現求值這一步吧,已知字尾表示式 轉換這一環節待更新 上 中綴表示式轉字尾表示式 seqstack 以及求值 version 1.0 求值,需要自己輸入字尾表示式 2.0 加上轉化功能 演算法 建立乙個運算元棧,自左向右遍歷字尾表示式,遇到乙個運算元就入棧,遇到乙個操作符就從棧...

C 中綴表示式轉字尾表示式

一 中綴表示轉字尾表示的規則 1.遇到操作符時,如果該操作符優先順序高於op stack棧頂的操作符,則直接壓入op stack,如果同級或低於棧頂操作符,則將棧中操作符依次彈出 同時壓入輸出棧 直到遇到比當前操作符優先順序低的,或者遇到了 2.和 都不能進入輸出棧。3.對於操作符 只有 才能將其彈...