首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域:ch和link,其中ch域为字符类型。
admin
2019-01-16
104
问题
设计一个算法,判断一个算术表达式中的括号是否配对。算术表达式保存在带头结点的单循环链表中,每个结点有两个域: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)||StackGetTop(s)!=’(’){ printf(”括号不配对\n”);return(0): } else pop(S): break; case’[’:push(s,p一>ch);break; case’[’:if(StaekEmpty(s)Il StackGetTop(s)!=’[’){ printf(”括号不配对\n”);return(0); } else pop(S); break; case’{’:push(s,p->ch);break; case’}’:if(StackEmpty(s)II StackGetTop(s)!=’{’){ printf(”括号不配对\n”);return(0); } else pop(s): break; }P=p->link;//后移指针 }//while if(StackEmpty(s))f printf("括号配对\n");return(1); } else{printf(”括号不配对\n”);return(0); } }
解析
转载请注明原文地址:https://kaotiyun.com/show/blRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
改革开放以后,我国农村产业结构巨大的转变表现在()。
《凡尔赛条约》中,战胜国以()方式处置德国的全部海外殖民地。
下列哪一个不是罗马王政时代的管理机构?()
下列关于塞尔维乌斯改革的叙述中,不正确的是()。
洋务运动期间,军事企业主要采取的组织形式是()。
国民党政府宣布民盟为“非法团体”,民盟总部被迫解散的时间是()。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
就绪队列中有n个进程等待使用一个CPU,那么,如果采用不同的调用算法,就有()种调度顺序。
一个UDP用户的数据报的数据部分长为8192字节。那么通过以太网来传播该UDP数据报时,最后一个IP分片的数据长度是()。
高度为7的AVL树最少有()个结点。
随机试题
A、B两个乡镇分布于山谷两侧,山谷间有一条宽为2km的河道(如下图所示)。当地政府决定在两个乡镇间修建一条跨河公路促进旅游发展。由于架桥费用高昂,所以要求跨河公路中的桥梁路段长度最短。那么根据图中数据,从A镇前往B镇的最短距离为()。
背景资料:S企业是一个制造汽车的中型国有企业,营销人员多是没经过甄选、测评上岗的,人员素质参差不齐。为了适应激烈市场竞争的需要,提高营销队伍的工作绩效和销售业绩,将适合的人放在适合的岗位,对不适合岗位的人员进行培训和开发,S企业决定找专业咨询公司通过素质
关于CT后处理图像放大技术的论述,正确的是
引起呼吸深快的原因应除了
目前国内的个人外汇期权产品为( ),即只有产品期满才可执行,如果汇率出现对您有利的价格,但是产品还未到期,您不能选择执行期权。
下列各句中,没有语病的一项为()。
原始社会的氏族习惯之所以不能称为“法”,原因在于哪些方面?( )
随机存取存储器(RAM)的最大特点是()。
A、 B、 C、 A
Whatarethesepeopleplanningtodo?
最新回复
(
0
)