將乙個算術表示式(即中綴形式)轉化成其字尾形式,並算出答案。
#include #include #include #include #include #include using namespace std;
using namespace std;
bool isoperator(char ch)
return false;
}// 比較兩個操作符的優先順序
int precedence(char op1, char op2)
if (op1 == '+' || op1 == '-')
else
}if (op1 == '*' || op1 == '/')
else
}}// 中綴表示式轉換成字尾表示式
void infix2postfix(char* infix, char* postfix)
st.pop();
}else
st.push(c);//入棧元素入棧}}
}while (!st.empty())//依次標記 出棧
postfix[j] = 0;
}// 字尾表示式求值程式
double postfixeval(char* postfix)
else
st.push(val);}}
return st.top();
}int main()
return 0;
}
利用棧解析算術表示式
在沒有接觸到棧這種資料結構時,一直覺得用程式計算四則表示式是件相當繁瑣的事。但利用棧,問題就立刻變得容易許多。解析任何包括 和0到9數字組成的算術表示式,並計算其結果。中綴表示式就是通常所說的算術表示式,比如 1 2 3 4。字尾表示式是指通過解析後,運算子在運算數之後的表示式,比如上式解析成字尾表...
算術表示式
引用標頭檔案 include include include using namespace std typedef int elemtype const int stack init size 100 儲存空間的初始化分配量 const int stackincrement 10 儲存空間分配增量...
算術表示式
include include include include define maxzhansize 30 char stack maxzhansize char deleted int top void add int top,char item 逆波蘭數計算 define element int...