首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
admin
2019-08-15
47
问题
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
选项
答案
表达式中的括号有以下三对:'('、')'、'['、']'、'{'、'}',使用栈,当为左括号时入栈,右括号时,若栈顶是其对应的左括号,则退栈,若不是其对应的左括号,则结论为括号不配对。当表达式结束,若栈为空,则结论表达式括号配对;否则,结论表达式括号不配对。 int Match(LinkedList la){ //算术表达式存储在以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)lI 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; 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://kaotiyun.com/show/VOCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
古代两河流域最具代表性的文学作品是()。
某激光打印机每分钟打印20页,每页4000字符,相应的设备驱动程序一次输出一个字符,采用中断方式,CPU处理每次中断需50微秒,则CPU用于打印的开销是()。
如下图所示为一个网络连接的示意图,主机1到主机2采用了SLIP网络连接,SLIP网络可以传输的最大数据段是296字节,主机2和主机3使用了以太网连接。请问:(1)为了使IP不分片,主机1可以在TCP包中承载多少数据?(2)主机3可以在TCP包中承载多
在二叉树的顺序存储中,每个结点的存储位置与其父结点、左右子树结点的位置都存在一个简单的映射关系,因此可与三叉链表对应。若某二叉树共有n个结点,采用三叉链表存储时,每个结点的数据域需要d个字节,每个指针域占用4个字节,若采用顺序存储,最后一个结点下标为k(起
给定集合S={0,1,2,3,4),以及优先关系R={0<1,1<4,1<2,2<3,2<4,4<0)。(1)R是偏序关系吗?(2)证明你的结论。
请利用队列的基本操作写出判定一棵二叉树是否为完全二叉树的算法。要求以二叉链表作为二叉树的存储结构。函数原型为:intIsFull_Bitree(BitreeT)。
某计算机系统的内存储器由Cache和主存构成,Cache的存取周期为45纳秒,主存的存取周期为200纳秒。已知在一段给定的时间内,CPU共访问内存4500次,其中340次访问主存。问:(1)Cache的命中率是多少?(2)CPU访问内存的平均
由元素序列(27,16,75,38,51)构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为2的结点)是()。
实现一个经典的“读者一写者”算法时,若当前临界区中有读者访问,写者再来时必须在临界区外面等候,如果其后读者源源不断地到达,按策略他们均可以进入临界区,始终保持临界区中有读者访问,那么写者可能长时间不能进入临界区而形成饥饿。为解决此类问题,我们修改访问策略,
设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复找出单链表中结点值最小的结点,并输出之,然后将该结点从中删除,直到单链表空为止,最后再删除表头结点。
随机试题
作统计图,应注意
关于二巯基丙醇注射液的叙述哪些是错误的处方:二巯基丙醇1000g苯甲酸苄酯1920g注射用油加至10000ml
关于无权代理的选项中正确的是( )。
治理来石量大的溪口急滩,应根据溪沟的()等情况,研究工程措施。
为了提高出口商品质量,我国从1992年起在出口生产企业中推行国际标准化组织颁布的______。
根据()的分类,可以将责任保险分为过失责任保险和无过失责任保险
在被功利化的童年里,国内的孩子们学习了许多一辈子都用不上的东西,与其如此,倒不如学学德国的幼儿园。据说,他们参观警察局,学习如何报警;参观消防警察局,学习灭火和躲避火灾;参观市政府,认识市长;去坐有轨电车,学会记回家路线;跟老师去超市买东西,学习付钱和选货
以太网交换机中的端口/MAC地址映射表是()。
Mostworthwhilecareersrequiresomekindofspecializedtraining.Ideally,therefore,thechoiceofan【C1】______shouldbemade
Theincreaseinglobaltrademeansthatinternationalcompaniescannotaffordtomakecostlyadvertisingmistakesiftheywantt
最新回复
(
0
)