首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
admin
2019-08-01
71
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求:
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++或Java语言描述算法,关键之处给出注释。
选项
答案
(1)算法的基本思想:判断表达式中括号是否匹配,可通过栈,简单说是左括号时进栈,右括号时退栈。退栈时,若栈顶元素是左括号,则新读入的右括号与栈顶左括号就可消去。如此下去,输入表达式结束时,栈为空则正确,否则括号不匹配。 在读入表达式结束符’#’时,栈中若只剩’#’,表示括号全部配对成功;否则表示括号不匹配。另外,由于本题只是检查括号是否匹配,故对从表达式中读入的不是括号的那些字符,一律未作处理。因假设栈容量足够大,因此入栈时未判断溢出。 (2)算法的设计如下: int exyx(char E[],int n){ //判断表达式中圆括号是否匹配 char s[30]; //s是一维数组,容量足够大,用作存放括号的栈 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]==’#’){printf(”括号配对\n”);return(1):} else{printf(”括号不配对\n”);return(0);}//括号不配对 default:i++; //读入其他字符,不作处理 } }
解析
转载请注明原文地址:https://kaotiyun.com/show/okCi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
两税法产生的背景、内容是什么?并对其进行评价。
下列关于基督教的思想来源的叙述,不正确的是()。
()时,为补充兵力,开拓财源,“料民于太原”(今山西西南部)。料民就是清查民数,以便于征兵,结果引起奴隶和平民的反抗。这表明西周王朝已失去了对社会的控制力量。
分析法兰西第二帝国的历史地位。
综述19世纪后半叶东方国家上层改革运动。
新中国院系调整主要是学习()。
两极格局结束后,世界形势发展的总态势的基本特点()
中国共产党在大革命失败后,根据中国革命的新特点,明确了“工农武装割据”的思想,其核心内容不包括()。
编写判定给定的二叉树是否是二叉排序树的函数。
“乘法减少”和“加法增大”备用在什么情况下?
随机试题
某市甲公司与在公司工作了15年的王某解除合同并进行经济补偿,王某平均月工资8000元,该公司职工在本地区上年度月平均工资为2000元。下列关于王某的经济补偿说法正确的是()。
Haveyoueatentoomuchovertheholidays?Youshouldtryfidgetingforawhile.Thosepeoplearoundyoumightnotlikeit,but
A.紫苏子B.苏叶C.两者都选D.两者都不选半夏厚朴汤的药物组成中有
乳腺肿块活检术后引流急性阑尾炎穿孔后腹腔引流
急性血源性骨髓炎常见于
某县公安局刑事警察赵某下班期间发现有人斗殴,即予以制止。正巧打架的马某与赵某有隙,便对赵某出言不逊。赵某大怒,拔枪将马某击伤。下列关于赔偿责任正确的说法是:()
下列关于ERP说法错误的是()。
甲公司2015年度财务报告批准对外报出日为2016年4月25日,所得税汇算清缴日为2016年3月15日。该公司在2016年4月25日之前发生的下列事项中,不需要对2015年度会计报表进行调整的是()。
下列()不是混凝土应用时要注意的事项。
按物流系统的业务功能进行分类,则物流信息系统可分为______、______、______、______、______、______、______。
最新回复
(
0
)