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

📄 pipei.cpp

📁 任意输入一个由若干个圆括号、方括号和花括号组成字符串
💻 CPP
字号:
#include<iostream.h>
const int Maxsize=100;
class Stack
{
public:
	Stack(){top1=-1,n=0;}
	~Stack(){}
	void Push(char s);
	char Pop();
	bool Compare(Stack &c);
	void Setdata2(char s);
	char Getdata2(int i){return data2[i];}
private:
	char data1[Maxsize],data2[Maxsize];
	int top1,n;
};
void Stack::Push(char s)
{
		data1[++top1]=s;
}
char Stack::Pop()
{
		if(top1==-1)throw"下溢";
		return data1[top1--];
}
void Stack::Setdata2(char s)
{
	data2[n]=s;
	n++;
}
bool Stack::Compare(Stack &c)
{
	if((*this).top1+1>c.n)
	{
		cout<<"左括号多了,不匹配"<<endl;
		return 0;
	}
	if((*this).top1+1<c.n)
	{
		cout<<"右括号多了,不匹配"<<endl;
		return 0;
	}
	else
	{
		while((*this).data1[top1])
		{
			int i=0;
			if((*this).Pop()!=c.Getdata2(i))
			{
			    break;
			}
			i++;
		}
	}
	if(!(*this).data1[top1])
	{
		cout<<"括号匹配"<<endl;
		return 1;
	}
	else
	{
		cout<<"左右括号类型不一样,不匹配"<<endl;
		return 0;
	}
}
void main()
{
	int i=0;
	Stack s1,s2;
	char c[Maxsize];
	cout<<"请输入括号字符串:";
	cin>>c;
	while(c[i])
	{
		if(c[i]=='('||c[i]=='{'||c[i]=='['||c[i]=='<')
			s1.Push(c[i]);
		else
		{
			if(c[i]==')')
				c[i]='(';
			if(c[i]=='}')
				c[i]='{';
			if(c[i]==']')
				c[i]='[';
			if(c[i]=='>')
				c[i]='<';
			s2.Setdata2(c[i]);
		}
		i++;
	}
	s1.Compare(s2);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -