表示式求值(資料結構書上棧的應用之一)

2021-06-26 05:29:13 字數 840 閱讀 4979

主要內容:表示式求值,提交nyoj通過。。。

思路:主要就是乙個開兩個棧,然後乙個操作符棧,乙個運算元棧。。

我的**如下(比較簡潔):

#include#include#include#include#include#include#include#include#include#include#define eps 1e-9

#define ll long long

#define inf 0x3f3f3f3f

using namespace std;

const int maxn=1000+10;

stackly;

stackgery;

char str[maxn],op[maxn];

char operation[7][7]//運算子的優先順序

,//'+'

,//'-'

,//'*'

,//'/'

,//'('

,//')'

,//'='

};int get_index(char ch)

}char get_prio(char a,char b)

double cal_value(double a,double b,char c)

}int main()}}

printf("%.2lf\n",ly.top());

}return 0;}/*

2((-2+3)*1.2+2)=

((-2+3)*10/2)=

*/

後來ac了看了別人用書上的方法進行分裝,但是覺得太麻煩了,一直不知道到底哪種方法好。。。

常用資料結構棧的應用 表示式求值

棧表示式求值 字尾表示式求值 中綴表示式轉字尾表示式 示例 棧是常用的資料結構,棧又稱堆疊,是一種受限的線性表。其限制是允許在表中的一端進行插入和刪除元素。棧中的元素符合後進先出 filo 的性質。允許插入和刪除元素的一端被稱為棧頂,另一端被稱為棧底。棧有兩種關鍵的操作,分別為出棧和壓棧。棧有兩種關...

資料結構 棧的應用之表示式求值

任何乙個表示式都是由運算元 運算子和界限符組成的,我們稱它們為單詞。一般地,運算元既可以是常數也可以是被說明為變數或常量的識別符號 運算子可以分為算術運算子 關係運算子和邏輯運算子 基本界限符由左右括號和表示式結束符等。此處,我們討論簡單算術表示式的求值問題,這種表示式只含加 減 乘 除四種運算子以...

表示式求值(資料結構書上棧的應用之中的乙個)

主要內容 表示式求值。提交nyoj通過。思路 主要就是乙個開兩個棧,然後乙個操作符棧。乙個運算元棧。我的 例如以下 比較簡潔 author gery include include include include include include include include include inc...