📄 postfix.h
字号:
//后缀表达式类Postfix的声明
class Postfix
{
private:
int a,b;
char Theta;
LinkStack<int> OPND2;
public:
void PostExpress(string &exp);
int Operate(int a, char theta, int b);
};
//后缀表达式计算函数的定义
void Postfix::PostExpress(string &exp)
{
int i=0,temp;
while (exp[i]!='#')
{
if (exp[i]<='9' && exp[i]>='0') //若为数字,则进行入栈处理
{
temp=exp[i]-48;
OPND2.Push(temp);
i++;
}
else
if(exp[i]=='+'||exp[i]=='-'||exp[i]=='*'||exp[i]=='/'||exp[i]=='('||exp[i]==')')
{
cout<<'\n';
Theta=exp[i];
b=OPND2.Pop();
a=OPND2.Pop();
OPND2.Push(Operate(a,Theta,b));
i++;
}
else i++;
}
if (OPND2.Empty()==1){
cout <<"Input Error";
cin.clear();
cin.ignore();
char a=cin.get();
exit(0);
}
else cout <<"\n The Result is"<<OPND2.GetTop();
}
//两个元素的运算函数
int Postfix::Operate(int a, char theta, int b)
{
switch (theta){
case '+':
return (a+b);
break;
case '-':
return (a-b);
break;
case '*':
return (a*b);
break;
case '/':
return (a/b);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -