表示式求值

2021-04-29 10:58:17 字數 1005 閱讀 7515

/*程式的說明見清華大學出版社《資料結構(c語言版)>>*/

#include

#include

#define stack_init_size 40

#define stackincrement 20

#define ok 1

#define false 0

typedef structs_stack;

typedef structf_stack;

static char op[7][7]= ,,

,, ,,

}; int in(char c) /*判斷是否為運算子*/

int s_initial(s_stack *s)//運算元棧初始化

int f_initial(f_stack *f)//運算子棧初始化

void s_push(s_stack *s,int e)

*(s->top)=e; s->top++;

}void  f_push(f_stack *f,char e)

*(f->top)=e;f->top++;

}int  f_pop(f_stack *f,char *e)

*e=*(--f->top);

return ok;

}int  s_pop(s_stack *s,int *e)/*運算元出棧*/

*e=*(--s->top);

return ok;

}int s_gettop(s_stack *s)

char f_gettop(f_stack *f)

char precede(char theta1,char theta2)/*比較運算子優先順序*/

int operate(int p,char op,int q) /*計算*/

}int evaluateexpression(s_stack *opnd,f_stack *optr)

else }

}return s_gettop(opnd);

}int main()

表示式求值

既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用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 ...

表示式求值

description 輸入中綴算術表示式s,s 中的運算元為非負整數,只含 和 運算,也可能含有括號 運算子的計算順序和實際四則運算的計算順序相同 輸出 表示式s 的值.注意除法運算只取整數部分,例如 1 2 0.input 輸入有多組資料.每組資料是乙個算術表示式s,s的長度不超過100.輸入的...