/*程式的說明見清華大學出版社《資料結構(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.輸入的...