[原始碼和文件分享]C語言的基於棧實現的表示式求值
阿新 • • 發佈:2018-12-11
一、目的
-
理解中綴表示式求值的過程
-
理解中綴轉字尾表示式求值的過程
-
掌握堆疊的應用
二、問題描述
-
綴表示式,其中包含括號,加減乘除,乘方等運算,利用中綴表示式,對錶達式分析並求值
-
入的中綴表示式轉換為字尾形式,顯示字尾形式,並通過後綴形式求值
三、資料結構
//運算子結構體
typedef struct
{
char OPname; //儲存運算子
int inOP; //儲存棧內級別
int outOP; //儲存棧外級別
}OP;
//定義運算數棧
typedef struct
{
datatype data[MAXSIZE];
int top;
}SeqStack;
//定義運算子棧
typedef struct
{
char data[MAXSIZE];
int top;
}charStack;
//----------------定義運算子陣列-----------------//
OP OPPree[OPNUM] =
{
{'+',3,2},
{'-',3,2},
{'*',5,4},
{'/',5,4},
{'^',7,6},
{'(',1,8},
{')',0,1},
{'#',-1,-1}
};
四、演算法設計的思想描述
建立兩個棧,一個為char型別棧OPTR,另一個為int型別棧OPND,分別來儲存運算子和運算數。
參考文件和完整的文件和原始碼下載地址:
https://www.write-bug.com/article/1409.html