資料結構例程 表示式求值(用棧結構)

2021-12-29 22:31:24 字數 1060 閱讀 9368

例:使用者輸入乙個包含「+」、「-」、「*」、「/」、正整數和圓括號的合法數學表示式,計算該表示式的運算結果。

解答:#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 ...