一、目的
理解中綴表示式求值的過程
理解中綴轉字尾表示式求值的過程
掌握堆疊的應用
二、問題描述
綴表示式,其中包含括號,加減乘除,乘方等運算,利用中綴表示式,對表示式分析並求值
入的中綴表示式轉換為字尾形式,顯示字尾形式,並通過字尾形式求值
三、資料結構
//運算子結構體
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] =,,
,,,,
,四、演算法設計的思想描述
建立兩個棧,乙個為char型別棧optr,另乙個為int型別棧opnd,分別來儲存運算子和運算數。
C語言的基於棧實現的表示式求值
一 目的 理解中綴表示式求值的過程 理解中綴轉字尾表示式求值的過程 掌握堆疊的應用 二 問題描述 綴表示式,其中包含括號,加減乘除,乘方等運算,利用中綴表示式,對表示式分析並求值 入的中綴表示式轉換為字尾形式,顯示字尾形式,並通過字尾形式求值 三 資料結構 運算子結構體 typedef struct...
棧實現表示式求值(C
為了實現用棧計算算數表示式的值,需設定兩個工作棧 用於儲存運算子的棧opter,以及用於儲存運算元及中間結果的棧opval。演算法基本思想如下 1 首先將運算元棧opval設為空棧,而將 作為運算子棧opter的棧底元素,這樣的目的是判斷表示式是否求值完畢。2 依次讀入表示式的每個字元,表示式須以 ...
表示式求值 棧實現
宣告 僅個人小記 演算法思想 一 設定乙個運算子棧,設定乙個字尾表示式字串 二 從左到右依次對中綴表示式中的每個字元ch分別進行一下處理,直至表示式結束 1.若ch是左括號 將其入棧 2.若 ch 是數字,將其後連續若干數字新增到字尾表示式字串之後,在新增空格作為分割符 3.若ch是運算子,先將棧頂...