有關棧api詳情參看我的還有一篇博文:棧的鏈式儲存 - api實現
遍歷字尾表示式中的數字和符號
對於數字:進棧
對於符號:
從棧中彈出右運算元
從棧中彈出左運算元
依據符號進行運算
將運算結果壓入棧中
遍歷結束:棧中的唯一數字為計算結果
#include #include "linkstack.h"
int isnumber3(char c)
int isoperator3(char c)
int value(char c)
int express(int left, int right, char op)
return ret;
}int compute(const char* exp)
else if (isoperator3(exp[i]))
else
i++;
} if ((linkstack_size(stack) == 1) && (exp[i] == '\0'))
else
linkstack_destroy(stack);
return ret;
}int main()
project檔案詳情:
github
棧的應用 字尾表示式
我看的是殷人昆版的 資料結構 在棧的應用中,介紹了字尾表示式,下面由我為大家稍微說明下字尾表示式的定義.字尾表示式 也叫rpn或逆波蘭表示式。它是中綴表示式的替代形式。參加運算的運算元總在操作符前面。例如 中綴表示式 a b c d e f 對應的字尾表示式為 abcd ef 詳細的字尾表示式的過程...
棧的應用 字尾表示式的轉化以及計算
將算術表示式存放在乙個字串中,之後從字串的第乙個字元開始讀取。若是數字,則直接進行輸出 若是左括號,則將其壓入棧中 若是右括號,則進行彈出並輸出,直至找到左括號,左括號彈出但不進行輸出,若無法找到左括號則證明有錯誤,輸出wrong並停止執行程式 若是操作符號,則與棧頂所存放的符號比較優先順序,若棧為...
棧的應用 字尾表示式 括號匹配
一 字尾表示式 在我們日常生活中所見表示式都是中綴表示式,如 5 3 7 4 2 這中表示式符合我們的思維邏輯,可讀性強,但是不利於計算機的解析。由波蘭邏輯學家j.lukasiewicz發明出字尾表示式,比如上式轉變為字尾表示式 5 3 7 4 2 這種人類難以適應的表達順序,計算機卻很受用。1.計...