資料結構棧之計算字尾表示式

2021-09-07 11:39:03 字數 436 閱讀 5269

對於乙個給定的字尾表示式,(如果它是合法的)

注意:次演算法是基於基本操作符是2元操作符且運算元為一位正整數!

其求值的基本思想是:對於給定的表示式進行遍歷,假設遇到的是運算元就將其壓入棧;假設遇到的是操作符,將棧頂的兩個元素彈出,假設棧頂兩個元素依次為a,b(a在上b在下),將次操作符應用於這兩個棧頂元素,比方b-a(注意b在左a在右)然後將計算結果壓入棧(用來充當下乙個操作符的運算元);

最後輸出棧頂元素即為結果(事實上假設表示式合法終於棧裡面一定會僅僅有乙個元素)

#include //字尾表示式求值

#include #include #include #include #include using namespace std;

int main()

} }cout<

資料結構 棧 (七) 使用棧計算字尾表示式

字尾表示式的計算思路為 從左到右掃瞄字尾表示式,如果遇到運算元,將其壓入棧中,如果遇到操作符,則從棧中彈出兩個運算元,計算結果,然後把結果入棧,直到遍歷完字尾表示式,則計算完成,此時的棧頂元素即為計算結果。棧實現表示式計算 author lkf date 2019 03 18 16 37 publi...

計算表示式值(字尾表示式) 棧

處理表示式主要是對優先順序以及括號的判斷 1.運算子棧頂的優先順序小於加入的時,需要將所有的不評級的取出並計算,2.當遇到 時,需要括號內的運算全部處理 2.其他情況全部加入運算子棧和資料棧 include include include using namespace std typedef lo...

資料結構 用棧實現對字尾表示式的計算

首先提一句,我所用的ide是vs2013。編譯器不同,所支援的特性也就不同 現在的c 已經發展到c 11版本,因此vs2008基本就不支援c 11新的特性 我們用字尾表示式,利用資料結構中的棧,進行結果的計算 如果是運算元,則壓棧 如果是操作符,則出棧兩個元素,根據操作符進行計算之後再壓棧 incl...