chap3-栈和队列

括号匹配问题

// 括号匹配,遇到 '\0' 结束
// 遇到花、中、圆左括号进栈,遇到花、中、圆右括号检查栈顶元素是否为相应的左括号,
// 若是,退栈;否则匹配错误。最后栈不为空也为错误

bool BracketsCheck(char *str){
    InitStack(S);
    int i = 0;
    while(str[i]!='\0){
        switch(str[i]){
            case '(' : Push(S,'('),break;
            case '{' : Push(S,'{'),break;
            case '[' : Push(S,'['),break;
            case ')' : Pop(S,e);
            if(e!='(')return false; break;
            case ']' : Pop(S,e);
            if(e!='[')return false; break;
            case '}' : Pop(S,e);
            if(e!='{')return false; break;
            defaule: break;
        }
        i++;
    }
    if(!IsEmpty(S)){
        print("error");
        return false;
    }else{
        print("success")
        return True;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 栈:如何实现浏览器的前进和后退功能? 浏览器的前进、后退功能,我想你肯定很熟悉吧? 当你依次访问完一串页面 a-b...
    GhostintheCode阅读 925评论 0 2
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,521评论 0 5
  • 我们爱美好的回忆,每每想起会不自觉嘴角上扬。于是珍藏这它。 我们拿痛苦没办法,生活会让某些类似这样的记忆...
    山崖葵阅读 148评论 0 0
  • 二零一八年二月十四号,凌晨一点半,差一点就睡着的一个二十岁的青年打开手机看了一眼日历,嚯,今天情人节啊,想了想,...
    半死梧阅读 281评论 0 0
  • 一个疯子,虽然他看上去很正常,但是人们也包括我,都叫他疯子,我们相信他疯疯癫癫,也确定他是疯子,就像我们从不研...
    孬子阅读 164评论 0 0