资源描述:
《实验三实验报告括号匹配的检验.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、成绩实验三实验题目:括号匹配的检验一、实验目的加深理解栈的定义和特性;掌握栈的存储结构与实现二、实验内容:任意输入一个由若干个圆括号、方括号和花括号组成字符串,设计一个算法判断该串中的括号是否配对。三、设计与编码1、基本思想基本思想:最内层(最迟出现)的左刮号必须与最内层(最早出现)的同类右刮号配对,它最急切地期待着配对。配对之后,期待得以消解。因此为左刮号设置一个栈,置于栈顶的左刮号期待配对的急切程度最高。实例:[([]{})]、([{}])、{[]})、({[]}、({[]])2、编码#include#include2、g.h>constintStackSize=100;classSeqStack{public:SeqStack(){top=-1;}~SeqStack(){}voidPush(chars);charPop();voidPeidui(chars[StackSize]);private:chardata[StackSize];inttop;};voidSeqStack::Push(chars){if(top==StackSize-1)throw"上溢";top++;data[top]=s;}charSeqStack::Pop(){if(top==-1)thro
3、w"下溢";else{chara;a=data[top--];returna;}}voidSeqStack::Peidui(char*s){inti=0,l=strlen(s);chart;for(i=0;i4、
5、s[i]=='['
6、
7、s[i]=='(')Push(s[i]);else{if(top==-1){cout<<"右括号多了,不匹配"<8、
9、t=='['&&s[i]==']'
10、
11、t=='('&&s[i]==')
12、'){Pop();}elsebreak;}}}if(top==-1&&s[i]==' ')cout<<"配对成功"<