#include #define maxsize 100
using namespace std;
//****************
char positive = '+';
char negative = '+';
//****************
typedef struct dopnd
opnd;
typedef struct roptr
optr;
//初始化棧
template void init(type& sta)
//入棧
template void push(type& sta,value val)
//取棧頂元素
template val gettop(type& sta,val val)
template bool isempty(type& sta)
//判斷ch是不是運算子
bool isoperator(char ch, char op)
} //是運算元
return false;
}//判斷運算子棧頂元素和讀入運算子的優先關係
char precede(char sta_operator,char input_perator)
; char carr[7] = ;
int x = -1,y = -1;
for(int i = 0; i < 7; i++)
return csearchtab[x][y];
}//根據操作符計算兩個運算元的值
int operate(int first_number, char operator, int second_number)
return ires;
}//將新讀入的字元與運算元棧頂元素拼接
void conn(opnd& operand,char ch,bool flag)
else
}flag = true; //操作符下一必為運算元
switch(precede(gettop(operator,'0'),ch))
break;
case '=':
break;
}} }
int res = gettop(operand,49);
cout<<"結果得: "
}
表示式求值
程式的說明見清華大學出版社 資料結構 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 ...