中缀表达式转后缀表达式 求改 栈
  • 板块题目总版
  • 楼主shy_lihui
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/2 22:13
  • 上次更新2024/1/3 14:07:28
查看原帖
中缀表达式转后缀表达式 求改 栈
1053122
shy_lihui楼主2024/1/2 22:13

壶关

//#include<bits/stdc++.h>
#include<iostream>
#include<math.h>
#include<cstring>
#include<string.h>
#include<algorithm>
#include<stack>
#include<stdio.h>
using namespace std;
stack<char> a;
string s;
int r(char c)
{
	if(c=='*' || c=='/')
	{
		return 2;
	}
	if(c=='+' || c=='-')
	{      
		return 1;
	}
	if(c=='(')
	{
		return 0;
	}
}
int main()
{
	cin>>s;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]==')')a.push(s[i]);
		else
		{
			if(s[i]=='+' || s[i]=='-' || s[i]=='*' || s[i]=='/')
			{
				while(!a.empty() && r(s[i])<=r(a.top()))
				{
					cout<<a.top();
					a.pop();
				}
			}
			else
			{
				if(s[i]==')')
				{
					while(1)
					{
						if(a.top()!='(')break;
						cout<<a.top();
						a.pop();
						
					}
				}
				else cout<<s[i];
			}
		}
	}
    return 0;
}
2024/1/2 22:13
加载中...