首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
admin
2017-01-04
82
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组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://kaotiyun.com/show/sLRi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
简述西欧城市兴起的原因、方式及其影响。
二月革命后,俄国为什么会出现两个政权并存的局面?
十六国时期的历史,可以划分为前后两个时期,其分界线是()。
巴黎和会上,英美主张把原德国在山东的权利转让给日本,华盛顿会议又表示支持中国让日本归还山东的要求,英美态度发生变化的根本原因是()。
在下列哪个条约中,最先出现了片面最惠国待遇?()
西汉的主要赋税形式中。征收对象是儿童的是()。
唐朝时期,每丁服徭役二十天,是为正役,国家若不需要其服役,则每丁可按照每天交纳绢三尺或布三尺七寸五分的标准,交足二十天的数额以代役,称为()。
一棵:BS’r树共7个结点,值分别为1、2、3、4、5、6、7,形态为满二叉树,()不是插入序列。
关于分页系统,回答下列问题:(1)在页表中,哪些数据项是为实现换页而设置的?(2)设某系统为每个作业进程分配3个内存块,某作业进程在运行访问中的轨迹为1,4,3,1,6,8,1,且每一页都是按请求装入的。问:先进先出页面置换算法(FIF
荷兰国旗问题:设有一个仅红、白、蓝三种颜色的条块组成的条块序列,请编写一个时间复杂度为O(n)的算法,使得这些条块按红、白、蓝的顺序排好,即排成荷兰国旗图案。
随机试题
下列关于管理的说法中,错误的是()
下列各项属于社会意识相对独立性表现的有()
先天性内斜视手术设计时应保留微小内斜视的度数是()
发育为胎盘的母体部分是
A.胸腔内2%苯酚氢钠反复冲洗B.胸腔内注入四环素、红霉素或滑石粉C.胸腔内注入异烟肼、利福平D.胸腔内注入糖皮质激素E.手术治疗支气管胸膜瘘应
刘某某的女朋友魏某某意外怀孕,刘某某便找到他的好友,某著名医科大学就读研究生的王某为其女朋友做堕胎手术。但手术过程中魏某某突然大出血,由于缺乏足够的临床经验,王某手无所措,由于挽救不及时,致使魏某某因流血过多而死亡。下列选项中,对王某的行为定性不正确的是:
根据刑事法律制度的规定,下列危害税收征管罪的罪名中,法定最高刑为无期徒刑的是()。
根据下列资料,回答下列问题。2015年年末,全国参加基本养老保险人数为85833万人,比上年年末增加1601万人。全年基本养老保险基金收入32195亿元,比上年增长16.6%。全年基本养老保险基金支出27929亿元,比上年增长19.7%。全国增加城
数据库管理员是数据库的主要维护者,设有如下针对数据库的工作:I.数据库的转储和恢复Ⅱ.数据库的安全性、完整性控制Ⅲ.数据库性能的监控分析和改进Ⅳ.数据库的重组和重构以上工作属于数据库管理员职责的是()。
BaruchSpinozawasaDutchphilosopherandreligiousthinkerwhowasbornonNovember24,1632inAmsterdam.HisfamilywasSpan
最新回复
(
0
)