字尾表示式求值

2021-10-07 07:12:43 字數 562 閱讀 8388

題目描述

為了便於處理表示式,常常將普通表示式(稱為中綴表示)轉換為字尾sqstack;

//順序棧的初始化

status initstack

(sqstack &s)

//順序棧的入棧

status push

(sqstack &s, selemtype e)

//演算法3.3 順序棧的出棧

status pop

(sqstack &s, selemtype &e)

intmain()

else

break

;//為空格時跳出轉化數字的迴圈

}push

(sd,t);}

else

if(s[i]

=='+'

||s[i]

=='-'

||s[i]

=='*'

||s[i]

=='/')}

}printf

("%d",*

(sd.top-1)

);//輸出棧頂元素值,棧頂指標不變

}

字尾表示式求值

字尾表示式求值過程中不需要考慮運算子的優先順序,只需要對該表示式中的每乙個元素進行判斷,若為運算元則將其儲存在乙個陣列裡 入棧 若為運算子則取出前面的兩個運算元 彈棧 並運算,並將運算結果放回該陣列 入棧 最終陣列的最後乙個元素 棧頂元素 即為該表示式的運算結果.如 字尾表示式 23 等價於中綴表示...

字尾表示式求值

根據 逆波蘭表示法,求表示式的值。有效的算符包括 每個運算物件可以是整數,也可以是另乙個逆波蘭表示式。說明 整數除法只保留整數部分。給定逆波蘭表示式總是有效的。換句話說,表示式總會得出有效數值且不存在除數為 0 的情況。示例 1 輸入 tokens 2 1 3 輸出 9 解釋 該算式轉化為常見的中綴...

字尾表示式求值

include include include 鏈棧 typedef struct node node typedef struct stack stack 佇列 typedef struct queuenode queuenode typedef struct queue queue 初始化棧 s...