棧的應用 字尾表示式

2021-07-11 04:13:48 字數 897 閱讀 4842

我看的是殷人昆版的《資料結構》,在棧的應用中,介紹了字尾表示式,下面由我為大家稍微說明下字尾表示式的定義.

字尾表示式:也叫rpn或逆波蘭表示式。它是中綴表示式的替代形式。參加運算的運算元總在操作符前面。

例如:中綴表示式 a+b*(c-d)-e/f  對應的字尾表示式為:abcd-*+ef/-

詳細的字尾表示式的過程如上圖所示, 利用棧的特性生成字尾表示式。

//字尾表示式

#include #include using namespace std;

#include enum type

;struct cell

;int rpncount(cell a, size_t size)

else

{ int left, right;

right = s.top();

s.pop();

left = s.top();

s.pop();

switch(a[i]._num)

{case add:

s.push(left+right);

break;

case sub:

s.push(left-right);

break;

case mul:

s.push(left*right);

break;

case div:

s.push(left/right);

break;

default:

cout<

如有不正確的地方,希望能夠指出,大家一起學習,謝謝了。

棧應用 字尾表示式的計算

有關棧api詳情參看我的還有一篇博文 棧的鏈式儲存 api實現 遍歷字尾表示式中的數字和符號 對於數字 進棧 對於符號 從棧中彈出右運算元 從棧中彈出左運算元 依據符號進行運算 將運算結果壓入棧中 遍歷結束 棧中的唯一數字為計算結果 include include linkstack.h int i...

棧的應用 字尾表示式 括號匹配

一 字尾表示式 在我們日常生活中所見表示式都是中綴表示式,如 5 3 7 4 2 這中表示式符合我們的思維邏輯,可讀性強,但是不利於計算機的解析。由波蘭邏輯學家j.lukasiewicz發明出字尾表示式,比如上式轉變為字尾表示式 5 3 7 4 2 這種人類難以適應的表達順序,計算機卻很受用。1.計...

棧的應用 字尾表示式的轉化以及計算

將算術表示式存放在乙個字串中,之後從字串的第乙個字元開始讀取。若是數字,則直接進行輸出 若是左括號,則將其壓入棧中 若是右括號,則進行彈出並輸出,直至找到左括號,左括號彈出但不進行輸出,若無法找到左括號則證明有錯誤,輸出wrong並停止執行程式 若是操作符號,則與棧頂所存放的符號比較優先順序,若棧為...