題目描述
為了便於處理表示式,常常將普通表示式(稱為中綴表示)轉換為字尾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...