首页 > 其他 > 详细

用栈实现括号匹配

时间:2020-05-03 00:36:52      阅读:55      评论:0      收藏:0      [点我收藏+]
#define Maxisize 10
typedef struct{
    char data[Maxsize];
    int top;
}SqStack;
void InitStack(SqStack &S)
bool StackEmpty(SqStack S)
bool Push(SqStack &S,char x)
bool Pop(SqStack &s,char &X)
bool bracketCheck(char str[],int length){
    SqStack S;
    InitStack(S);
    for(int i=0;i<length;i++){
        if(str[i]==(||str[i]==[||str[i]=={){
            Push(S,str[i]); //扫描到左括号,入栈 
        }
        else{
            if(StackEmpty(S)) //扫描到右括号,且当前栈空 
            return false;
            
            char topElem;
            Pop(S,topElem); //栈顶元素出栈
            if(str[i]==)&& topElem!=()
              return false;
            if(str[i]==]&& topElem!=[)
              return false;
            if(str[i]==}&& topElem!={)
               return false; 
        } 
        
    }
    return StackEmpty(S); //检索完所有括号后,栈空说明匹配成功 
}

 

用栈实现括号匹配

原文:https://www.cnblogs.com/ikigai18/p/12820054.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!