- //括号匹配问题
/*
#include<iostream>
using namespace std;
const int MIX=40;
typedef struct Node
{
char data;
struct Node *next;
}node;
class Queue
{
private:
node *first;
node *rear;
char stick[MIX];
int top;
char mu[MIX];
public:
Queue(char s[])
{
top=0;
strcpy(mu,s);
};
void EnQueue();
void Push();
void Pipei();
};
void Queue::EnQueue()
{
int i=0;
first=new node;
rear=first;
rear->next=NULL;
while(mu[i]!='\0')
{
if(mu[i]=='{'||mu[i]=='}'||mu[i]=='['||mu[i]==']'||mu[i]=='('||mu[i]==')')
{
node *s;
s=new node;
s->data=mu[i];
s->next=rear->next;
rear->next=s;
rear=s;
}
i++;
}
}
void Queue::Push()
{
node *p;
p=first;
while(p->next!=NULL)
{
if(p->next->data=='{'||p->next->data=='['||p->next->data=='(')
{
stick[top]=p->next->data;
p->next=p->next->next;
top++;
}
else
p=p->next;
}
}
void Queue::Pipei()
{
node *p;
p=first;
top--;
while(top!=-1)
{
p=first;
while(p!=rear)
{
if((p->next->data=='}'&&stick[top]=='{')||(p->next->data==']'&&stick[top]=='[')||(p->next->data==')'&&stick[top]=='('))
{
cout<<"括号"<<stick[top]<<"匹配"<<endl;
first->next=p->next->next;
break;
}
else
p=p->next;
}
top--;
}
}
int main()
{
char s[MIX];
int i=0;
cin>>s;
Queue queue(s);
queue.EnQueue();
queue.Push();
queue.Pipei();
return 0;
}
*/
括号匹配问题
最新推荐文章于 2022-10-24 21:13:26 发布