首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
admin
2017-01-04
78
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
(1)算法的基本思想:判断表达式中括号是否匹配,可通过栈,简单说是左括号时进栈,右括号时退栈。退栈时,若栈顶元素是左括号,则新读入的右括号与栈顶左括号就可消去。如此下去,输入表达式结束时,栈为空则正确,否则括号不匹配。 在读入表达式结束符’#’时,栈中若只剩’#’.,表示括号全部配对成功:否则表示括号不匹配。另外,由于本题只是检查括号是否匹配,故对从表达式中读入的不是括号的那些字符,一律未作处理。因假设栈容量足够大,因此入栈时未判断溢出。 (2)算法的设计如下: int exyx(char E[],int n){ //判断表达式中圆括号是否匹配 char s[30]; /Is是一维数组,容量足够大,用作存放括号的栈 int top=0; //top用作栈顶指针 s[top]=’#’; //’#’先入栈,用于和表达式结束符号’#’匹配 int i=0; //字符数组E的工作指针 while(E[i]!=’#’) //逐字符处理字符表达式的数组 switch(E[i]){ case’(’:s[++top]=’(’:i++;break: case’)’:if(s[top]==’(’){top一一;i++;break:} else{printf(”括号不配对”);exit(0);} case’#’:if(s[top]==’#’){prinff(”括号配对\n”);return(1);} else{prinff(”括号不配对\n”);return(0);}//括号不配对 default:i++; //读入其他字符,不作处理 } }
解析
转载请注明原文地址:https://www.kaotiyun.com/show/sLRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
1837年倡导用无机肥料来补充土壤中耗去的化学元素的化学家是()。
简述罗马共和国早期平民反贵族斗争的原因、过程和意义。
简述西欧城市兴起的原因、方式及其影响。
共产国际“七大”决定加强各国共产党的自主性,主要是由于()。
下列不是苏俄实行战时共产主义政策原因的是()。
隋唐科举制的进士科最先出现在()。
下列国家中不是不结盟运动发起者的是()。
下列哪一项不是凯末尔世俗化改革的内容?()
对斯大林时期形成的高度集中的社会主义经济政治体制的叙述,不确切的是()。
下列叙述正确的个数是()。 1)向二叉排序树中插入一个结点,所需比较的次数可能大于此二叉排序树的高度。2)对B-树中任一非叶子结点中的某关键字K,比K小的最大关键字和比K大的最小关键字一定都在叶子结点中。3)所谓平衡二叉树是指左、右
随机试题
下列中断源产生的中断,不属于内部中断的是()
法洛四联症中决定患儿临床表现严重程度的最主要病理畸形是
患者,男生,20岁。患肺结核5年,近2个月来低热,咳嗽,痰中带血。2h前突然咯血不止急诊入院。治疗应首选
患者,男,17岁,因血压升高,双下肢水肿1周入院,尿检:尿蛋白(+++)。导致其水肿最主要的因素是
到1995年,我国已同227个国家和地区建立了经贸关系。()
某投资者买了l张年利率为10%的国债,其名义收益率为10%。若1年中通货膨胀率为5%,则该国债的实际收益率为()。
鲁山县有上、中、下“三汤"温泉,是我省著名的“四大名泉”之一。
①历史上严重的干旱和洪水给生命和财产带来了难以估计的损失②但却未能从根本上摆脱严重的干旱和洪水反复给经济社会带来的巨大灾难③几千年来,人类以巨大的努力不屈不挠地进行着筑堤防洪、截流蓄水、开渠引水、掘井取水等传统模式的水利建设,推动着文明
以下实例中,利用“移开可燃物”原理灭火的是:
Pronunciationisoneofthemostobviousareas.Forexample,inOldEnglish,peoplesaid"hus"and"mus".Now,wesay"house"an
最新回复
(
0
)