括号匹配问题

  • //括号匹配问题
    /*
    #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;
    }
    */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值