演算法之中綴表示式和字尾表示式

2021-06-13 00:26:29 字數 978 閱讀 1835

一、字尾表示式求值

字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。

假定待求值的字尾表示式為:6  5  2  3  + 8 * + 3  +  *,則其求值過程如下:

(1)遍歷表示式,遇到的數字首先放入棧中,依次讀入6 5 2 3 此時棧如下所示:

(2)接著讀到「+」,則從棧中彈出3和2,執行3+2,計算結果等於5,並將5壓入到棧中。

(3)然後讀到8(數字入棧),將其直接放入棧中。

(4)讀到「*」,彈出8和5,執行8*5,並將結果40壓入棧中。

而後過程類似,讀到「+」,將40和5彈出,將40+5的結果45壓入棧...以此類推。最後求的值288。

**:

#include#include#include#includeusing namespace std;

int main()

//如果是數字則入棧

if(postarray[i] >= '0' && postarray[i] <= '9')

//如果是字元則從棧讀出兩個數進行運算

else

else if(postarray[i] == '-')

else if(postarray[i] == '*')

else if(postarray[i] == '/')

}}//for

printf("%d\n",stack.top());

}//while

return 0;

}

演算法之中綴表示式和字尾表示式

一 字尾表示式求值 字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字首先放入棧中,依次讀入6 5 2 3 此時棧如下所示 2 接著讀到 則從棧中彈出3和2,執行3 2,計算結果等於5,並將5壓入...

經典白話演算法之中綴表示式和字尾表示式

一 字尾表示式求值 字尾表示式也叫逆波蘭表示式,其求值過程可以用到棧來輔助儲存。假定待求值的字尾表示式為 6 5 2 3 8 3 則其求值過程如下 1 遍歷表示式,遇到的數字首先放入棧中,依次讀入6 5 2 3 此時棧如下所示 2 接著讀到 則從棧中彈出3和2,執行3 2,計算結果等於5,並將5壓入...

中綴表示式和字尾表示式

一 中綴表示式如何轉成字尾表示式?中綴表示式 符合人類閱讀 字尾表示式 符合計算機運算 1 遍歷中綴表示式中的數字和符號 2 對於數字 直接輸出 3 對於符號 左括號 進棧 運算符號 與棧頂符號進行優先順序比較 若棧頂符號優先順序低 此符號進棧 預設棧頂若是左括號,則左括號優先順序最低 若棧頂符號優...