- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表达式括号匹配配对判断问题
实验 表达式括号匹配配对判断问题
姓名: 班 级: 学号:
1,问题的描述
假设一个算法表达式中包括圆括号,方括号两种,设计判别表达式中括号是否正确匹配的算法。
2,数据结构设计
(1)匹配判别发生在右括号出现时,且被匹配的左括号应是距离右括号最近被输入的,二不是最先被输入的括号
,即“先入后匹配”。因此用栈来解决。 struct Node
{
int top;
char data[stacksize];
};
Node node;
void InitStack( ) // 初始化栈
{
node.top=-1;
}
(2)一是表达式的串;二是栈。串可以采用顺序表表示。所以采用顺序栈,站元素类型为字符型。
sqstack(int n)
{ base=newT[m];
if(base=NULL){
cout“创栈失败”;
exit(1);
}
stacksize=m;top=-1;}
}
3,算法设计
(1)进栈的算法设计
voidPush(charx) {
if(node.top==stacksize-1);
node.top++;
node.data[node.top]=x;
}
(2)出栈的算法设计
void Pop(char x)
{
if(node.top==-1);
x=node.data[node.top--];}
(3)判断是否匹配的算发。如果右括号,进栈,取下个字符;如果是左括号,出栈,取下个字符;最后判断栈是否为空;得出结论。
3.1因为其中包含几种括号,所以用采用switch语句
for(i=0;*(p+i)!=\0count!=0;i++)
{
switch (*(p+i))
{
case ( :
Push(*(p+i)) ;
break ;
case [ :
Push(*(p+i) ) ;
break ;
case ) :
{
Pop(e) ;
if ( e!=( )
count=0 ;
};
break ;
case ] :
{
Pop(e) ;
if ( e!=[ )
count=0 ;
}; break ;
您可能关注的文档
- 葡萄病虫害防治项目建议书.doc
- 董事长、CEO、总裁、总经理的关系.doc
- 董事会会议提案管理细则.doc
- 葡萄酒酒庄介绍论文.doc
- 董氏奇穴 邱雅昌.doc
- 董志镇北门村庄建设规划说明.doc
- 葡萄月管理工作历及病虫害防治技术.ppt
- 蒋军虎英语一长难句讲义.doc
- 蒋沙移民新村主路及巷道硬化工程施工组织设计.doc
- 董氏奇穴放血篇.doc
- 2024年05月山东交通职业学院招考聘用博士研究生50人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽芜湖市弋江区老年学校(大学)工作人员特设岗位公开招聘2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东东营河口区教育类事业单位招考聘用22人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东交通职业学院招考聘用100人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东威海职业学院招考聘用高层次人才2人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽石台县事业单位工作人员33人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东滨州市博兴县事业单位公开招聘考察笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月安徽蚌埠固镇县湖沟镇选聘村级后备干部7人笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东省安丘市教育和体育局所属事业单位学校公开2024年招考232名工作人员笔试历年典型题及考点剖析附带答案含详解.docx
- 2024年05月山东临沂临港经济开发区工作人员(5人)笔试历年典型题及考点剖析附带答案含详解.docx
文档评论(0)