天天看點

c語言棧包含最小值,C語言的基于棧實作的表達式求值

一、目的

了解中綴表達式求值的過程

了解中綴轉字尾表達式求值的過程

掌握堆棧的應用

二、問題描述

綴表達式,其中包含括号,加減乘除,乘方等運算,利用中綴表達式,對表達式分析并求值

入的中綴表達式轉換為字尾形式,顯示字尾形式,并通過字尾形式求值

三、資料結構

//運算符結構體

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,分别來存儲運算符和運算數。

參考文檔和完整的文檔和源碼下載下傳位址: