C語言的基於棧實現的表示式求值

2021-09-05 11:21:50 字數 774 閱讀 8422

一、目的

理解中綴表示式求值的過程

理解中綴轉字尾表示式求值的過程

掌握堆疊的應用

二、問題描述

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

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

三、資料結構

//運算子結構體

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是運算子,先將棧頂...