使用栈实现括号的匹配检验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使用栈实现括号的匹配检验//括号匹配.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;}

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功