首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
admin
2019-08-01
51
问题
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
选项
答案
表达式中的括号有以下三对:’(’、’)’、’[‘、’]’、’{’、’}’,使用栈,当为左括号时入栈,右括号时,若栈顶是其对应的左括号,则退栈,若不是其对应的左括号,则结论为括号不配对。当表达式结束,若栈为空,则结论表达式括号配对;否则,结论表达式括号不配对。 int Match(LinkedList 1a){ //算术表达式存储在以la为头结点的单循环链表中,本算法判断括号是否正确配对 char s[]; //s为字符栈,容量足够大 p=la一>link; //p为工作指针,指向待处理结点 Stack Init(s); //初始化栈s while(p!=la){ //循环到头结点为止 switch(p一>ch){ case’(’:push(s,p一>ch);break; case’)’:if(StackEmpty(s)||StackGetTop(s)!=’(’){ pfintf(”括号不配对\n”);return(0); } else pop(S); break; case ’[’:push(s,p一>ch);break; case’[’:if(StackEmpty(s)||StackGetTop(s)!=’[’){ printf(”括号不配对\n”);return(0); } else pop(s); break; case’{’:push(s,P一>ch);break: case’}’:if(StackEmpty(s)||StackGetTop(s)!=’{’){ printf(”括号不配对\n”);return(0); } else pop(s); break; }P=p一>link;//后移指针 }//while if(StackEmpty(S)){printf(”括号配对\n”);return(1); } else{printf(”括号不配对\n”);return(0); } }
解析
转载请注明原文地址:https://jikaoti.com/ti/rLGjFFFM
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
英国革命中,平等派的领导人是()。
标志着整风运动开始向反“右派”斗争转变的重要文件是()。
帝国前期罗马文化吸收了许多民族的文化成果,进入了兴盛时代。其中自然科学方面最有代表性的人物是()。
达芬奇、米开朗基罗、拉斐尔称为“文艺复兴三杰",与启蒙思想家相比,他们
解放军渡江战役中横渡长江的东西两个攻击点是()。
简述雅典民主政治的形成过程。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
5位二进制定点小数,用补码表示时,最小负数是()。
驱动调度算法中,()算法可能会随时改变移动臂的运动方向。
二维数组A的每个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。设每个字符占一个字节。若A按行先存储,元素A[8,5]的起始地址与当A按列先存储时起始地址相同的元素是()。
随机试题
艺术直觉与认知直觉的区别?
A.肾素B.血管紧张素ⅡC.醛固酮D.肾上腺素E.心房钠尿肽有缩血管作用,并能刺激血管升压素释放的是
密纹滤线栅的界定值是
阴道窥器主要用来检查
人类教育史上的第一次革命是印刷术的发明,使教科书成为教学的基本依据。()
【2013.福建】能够百折不挠地克服困难并最终实现预定目的,体现的意志品质是()。
协调:是指事物在发展过程中,其自身内部以及一事物与他事物之间的和谐、适度关系。下列情况表现得不协调的是()
某计算机销售部向顾客承诺:“本部销售的计算机在一个月内包换、一年内免费包修、三年内上门服务免收劳务费,因使用不当造成的故障除外。”以下哪项所讲的是该销售部应该提供的服务?()
CD-ROM是( )。
【B1】【B3】
最新回复
(
0
)