#include
#include
#include
#define false 0
#define true 1
#define error 0
#define ok 1
#define overflow -1
typedef int status;
//stack
typedef char selemtype;
#define stack_init_size 100//儲存空間初始量
#define stack_increment 10//儲存空間初始增量
typedef struct
stack;//棧的結構型別
status initstack(stack &s)//初始化棧
//initstack
status push(stack &s,selemtype e)//將元素e插入到棧頂
//if
*s.top++=e;
return ok;
}//push
status pop(stack &s,selemtype &e)//刪除棧頂元素 儲存給e
//pop
selemtype gettop(stack s)//得到棧頂元素並返回其值
//gettop
//expression
selemtype precede(selemtype t1,selemtype t2)//判斷運算子的優先順序
return t;
}//precede
selemtype operator(selemtype a,selemtype c,selemtype b)//對a,b運用符號c進行計算
return d;
}//operator
status in(selemtype c)//判斷是否是符號若是返回true否則返回false
}//in
void exvaluateexpression()//輸入乙個表示式並對它對值
//把資料存放到資料棧中
else
case '=':
case '>':}}
}printf("/n表示式的值為:");
printf("%c",gettop(opd));//輸出最後的棧頂元素
}//evaluateexpression
//main
void main()
while (c=='y' || c=='y');
}這只能對0-9的值進行求值,而10以上就不行了,,看來好像要將它轉換成二進位制數,然後,把計算結果再轉換成十進位制輸出....不知這樣可否實現?還沒通過呢?
表示式求值問題
這是清華大學鄧俊輝資料結構 c 中的乙個案例,通過使用棧這種資料結構,完成了較為複雜的表示式求值問題,以下 是我整理改編而成,能夠完成加減乘除,乘方 階乘的運算,以及括號的處理。在這裡,我使用到了c stl 中的容器stack。include include include include incl...
表示式求值問題之表示式樹
include include include include define m 1005 define clr arr,now memset arr,now,sizeof arr using namespace std stackshu typedef struct node tire,t cha...
NYOJ 表示式求值問題
時間限制 3000 ms 記憶體限制 65535 kb 難度 4描述 acm隊的mdd想做乙個計算器,但是,他要做的不僅僅是一計算乙個a b的計算器,他想實現隨便輸入乙個表示式都能求出它的值的計算器,現在請你幫助他來實現這個計算器吧。比如輸入 1 2 4 程式就輸出1.50 結果保留兩位小數 輸入第...