用栈实现复杂四则运算的C语言代码
来源:百度知道 编辑:UC知道 时间:2024/06/06 11:04:13
#include <cstdio>
#include <cstdlib>
#include <cstring>
class CalcInfixExp
{
public:
CalcInfixExp();
char calc(double &result, const char *s);
void error(char n);
char GetOrder(char a, char b);
bool NumPush(const char &a);
bool NumPop(char &a);
bool OpePush(const char &a);
bool OpePop(char &a);
private:
int p, q;
char ope[100];
char num[100];
};
CalcInfixExp::CalcInfixExp()
{
p=q=0;
};
bool CalcInfixExp::NumPush(const char &a)
{
if (q>=100) return false;
num[q++]=a;
return true;
}
char CalcInfixExp::calc(double &result, const char *s)
{
bool PopRight;
char f, szA[20], order;
int i;
double a, b, c;
p=q=0; //清空ope栈和num栈
OpePush('\0');
if (*s=='+