主要內容:表示式求值。提交nyoj通過。。。
思路:主要就是乙個開兩個棧,然後乙個操作符棧。乙個運算元棧。
我的**例如以下(比較簡潔):
/*****
author gery
******/
#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了看了別人用書上的方法進行分裝,可是認為太麻煩了。一直不知道究竟哪種方法好。。。
表示式求值(資料結構書上棧的應用之一)
主要內容 表示式求值,提交nyoj通過。思路 主要就是乙個開兩個棧,然後乙個操作符棧,乙個運算元棧。我的 如下 比較簡潔 include include include include include include include include include include define ep...
常用資料結構棧的應用 表示式求值
棧表示式求值 字尾表示式求值 中綴表示式轉字尾表示式 示例 棧是常用的資料結構,棧又稱堆疊,是一種受限的線性表。其限制是允許在表中的一端進行插入和刪除元素。棧中的元素符合後進先出 filo 的性質。允許插入和刪除元素的一端被稱為棧頂,另一端被稱為棧底。棧有兩種關鍵的操作,分別為出棧和壓棧。棧有兩種關...
資料結構 棧的應用之表示式求值
任何乙個表示式都是由運算元 運算子和界限符組成的,我們稱它們為單詞。一般地,運算元既可以是常數也可以是被說明為變數或常量的識別符號 運算子可以分為算術運算子 關係運算子和邏輯運算子 基本界限符由左右括號和表示式結束符等。此處,我們討論簡單算術表示式的求值問題,這種表示式只含加 減 乘 除四種運算子以...