棧的應用 中綴表示式轉字尾表示式

2021-08-25 02:35:45 字數 861 閱讀 1087

中綴轉字尾過程:

1. 對於數字:直接輸出

2. 對於符號:

2.1 左括號:進棧 

2.2 運算符號:(與棧頂符號進行優先順序比較,若棧頂符號優先順序低:此符號進棧;若棧頂符號優先順序不低:將棧頂符號彈出並輸出,之後進棧)

若是乘除直接進棧;

若是加減,與棧頂比較,若棧頂是乘除,直接輸出,否則進棧。

2.3 右括號:將棧頂符號彈出並輸出,直到匹配左括號

遍歷結束:將棧中的所有符號彈出並輸出

字尾表示式的求值:

如果是數字壓入棧中;如果是操作符,則從棧中退出兩個運算元,運算後壓入棧中;最後棧頂存放的就是計算結果。

#include #include #include using namespace std;

int isnumber(char a)

int isleft(char a)

int isright(char a)

int isplusormimus(char a)

int ismultiordivi(char a)

int main()

if (isleft(str[i]))

if (isright(str[i]))

else

}} if (isplusormimus(str[i]))

}} if (ismultiordivi(str[i]))

} while (s.size())

cout << endl;

system("pause");

return 0;

}

棧的應用 中綴表示式轉字尾表示式

有關棧api詳情請參看我的另一篇博文 棧的鏈式儲存 api實現 例項 5 4 5 4 1 2 3 1 2 3 8 3 1 5 8 3 1 5 中綴表示式符合人類的閱讀和思維習慣 字尾表示式符合計算機的 運算習慣 中綴轉字尾演算法 遍歷中綴表示式中的數字和符號 對於數字 直接輸出 對於符號 左括號 進...

棧的應用 (中綴表示式 轉 字尾表示式)

中綴表示式 字尾表示式,都是用來呈現運算表示式的一種方式。標準表示式 4 5 6 7 中綴表示式,就是標準的表示式,即4 5 6 7 字尾表示式,符號在後的表示式,即4 5 6 7 中綴表示式轉字尾表示式的思想是 注意的是 只有 這5種符號才會入棧 1.讀到運算元時,立即輸出 2.讀到的是操作符,分...

棧的應用 中綴表示式轉字尾表示式

如果是數字,則直接輸出 如果是左括號,直接入棧 如果是右括號,出棧,直到遇到第乙個左括號 如果是 或者 出棧,直到棧空或者左括號或者遇到 當前符號入棧 如果是 或者 出棧,直到棧空或者左括號,當前符號入棧 如果中綴表示式走完,將棧中的內容全部彈出 1.如果是數字,直接輸出 如下 if isdigit...