例:使用者輸入乙個包含「+」、「-」、「*」、「/」、正整數和圓括號的合法數學表示式,計算該表示式的運算結果。
解答:#include
#include
#define maxop 100
#define maxsize 100
struct //設定運算子優先順序
lpri= ,,,,,,},
rpri= ,,,,,,};
int leftpri(char op) //求左運算子op的優先順序
postexp[i++]='#'; //用#標識乙個數值串結束
}else //為運算子的情況
switch(precede(op.data[op.top],*exp))
} //while (*exp!='')
while (op.data[op.top]!='=')
//此時exp掃瞄完畢,退棧到'='為止
postexp[i]=''; //給postexp表示式新增結束標識
}float compvalue(char exp) //計算字尾表示式的值
st; //定義數值棧
float d;
char ch;
int t=0; //t作為exp的下標
st.top=-1;
ch=exp[t];
t++;
while (ch!='') //exp字串未掃瞄完時迴圈
st.top--;
break;
default:
d=0; //將數字字元轉換成數值存放到d中
while (ch>='0' && ch<='9') //為數字字元
st.top++;
st.data[st.top]=d;
}ch=exp[t];
t++;
}return st.data[st.top];
}int main()
資料結構例程 表示式求值(用棧結構)
本文針對資料結構基礎系列網路課程 3 棧和佇列中第5課時棧的應用1 表示式求值。例 使用者輸入乙個包含 正整數和圓括號的合法數學表示式,計算該表示式的運算結果。解答 include include define maxop 100 define maxsize 100 struct 設定運算子優先順...
資料結構例程 表示式求值(用棧結構)
本文針對資料結構基礎系列網路課程 3 棧和佇列中第5課時棧的應用1 表示式求值。例 使用者輸入乙個包含 正整數和圓括號的合法數學表示式,計算該表示式的運算結果。解答 include include define maxop 100 define maxsize 100 struct 設定運算子優先順...
(複習)資料結構 棧 表示式求值
很久都沒有寫棧的程式了呢 由腦補可以字尾式求值是要用到棧的。所有說表示式求值可以分為兩部分 1.把中綴式轉換為字尾式 2.字尾式求值 include include include include include include include using namespace std char s ...