表示式求值的問題

2021-04-01 22:47:42 字數 1342 閱讀 4999

#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 結果保留兩位小數 輸入第...