您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 使用栈实现括号的匹配检验
使用栈实现括号的匹配检验//括号匹配.cpp:#defineMaxSize100#includeiostreamusingnamespacestd;classStack{private:intsize;//栈的大小inttop;//栈顶元素char*listArray;//栈储存的元素为字符型public:Stack(intsz=MaxSize)//构造函数,用于初始化{size=sz;top=0;listArray=newchar[sz];}~Stack(){delete[]listArray;}boolpush(charitem)//puah操作{if(top==size)returnfalse;else{listArray[top++]=item;returntrue;}}intpop()//pop操作{charitem;if(top==0)return0;else{returnitem=listArray[--top];}}intisEmpty()//判断栈是否为空{if(top==0)return1;elsereturn0;}intCheck(char*str)//检查括号串是否匹配{Stackstack(MaxSize);intstrn=strlen(str);for(inti=0;istrn;i++){chara=str[i];switch(a){case'(':case'[':case'{':stack.push(a);break;case')':if(stack.pop()!='(')return0;break;//对于每一个)、]或},在它前面一定push了一个(、[或{,而且是紧邻这的。case']':if(stack.pop()!='[')return0;break;//注意,只对(、[或{进行了push和pop操作,)、]或}只用于比较case'}':if(stack.pop()!='{')return0;break;}}intnum=0;num=stack.isEmpty();if(num==1)return1;elsereturn0;}};intmain(){Stackstack;charstr[MaxSize];cout请输入一个待检测的括号串:endl;cinstr;intnum=stack.Check(str);if(num==1)cout该括号串是匹配的。endl;if(num==0)cout该括号串不匹配。endl;system(pause);return0;}
本文标题:使用栈实现括号的匹配检验
链接地址:https://www.777doc.com/doc-4450350 .html