表示式求值

2021-09-27 11:30:36 字數 1436 閱讀 8062

#include "stdio.h"

#include "stdlib.h"

#define maxsize 10

typedef struct

seqstack;

seqstack *initstackchar();

int empty(seqstack *s); //判空棧

int push(seqstack *s,char x); //入棧

int push1(seqstack *s,int x); //數字入棧

int pop(seqstack *s,char *x); //出棧

int pop1(seqstack *s,int *x); //數字出棧

char gettop(seqstack *s); //取棧頂

int exp(); //主要函式

int in(char ch,char *opset); //判斷元素是否屬於運算子的一種

char compare(char x,char ch); //作對比

int coutnum(int th2,int th1,char op); //計算

int main()

seqstack *initstackchar()

int empty(seqstack *s) //判空棧

int push(seqstack *s,char x) //入棧

}int push1(seqstack *s,int x) //入棧

}int pop(seqstack *s,char *x) //出棧

}int pop1(seqstack *s,int *x)

}char gettop(seqstack *s) //取棧頂第乙個元素

int exp()

; seqstack *oprd,*optr;

oprd=initstackchar();

optr=initstackchar();

push(optr,'#');

printf("\n\nplease input an expression:");

ch=getchar();

ch1=getchar();

while(ch!='#'||gettop(optr)!='#')

push1(oprd,data);

} else

}}// val=gettop(oprd);

return val;

}int in(char ch,char *opset)

return 0;

}char compare(char x,char ch) //順序不可改變

int coutnum(int th1,int th2,char op)

表示式求值

程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...

表示式求值

既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...

表示式求值

寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...