⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 postfix.h

📁 利用栈求解算术表达式的值
💻 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 + -