首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,’#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Ja
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,’#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Ja
admin
2018-08-12
56
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组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; ease‘)’:if(s[top]:=‘(’){top一一;i++;break;} else{printf(”括号不配对”);exit(0);} ease‘#’:if(s[top]==‘#’){printf(“括号配对\n”);return(1);} else{printf(“括号不配对\n”);return(0);}//括号不配对 default:i++; //读入其他字符,不作处理 } }
解析
转载请注明原文地址:https://kaotiyun.com/show/d5Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列选项中不是严复的著作的是()
第一次国共合作采取了共产党员以个人身份加入国民党的“党内合作”方式,最早提出这种方式的是()
人民解放军转入战略进攻的方向为大别山地区,主要是由于()。①大别山战略位置重要②大别山有良好的群众基础③占据大别山可以从根本上改变战局
19世纪中期,德意志资产阶级迫切要求实现国家的统一,其首要的目的是()。
试述西欧城市兴起的原因、方式及其影响。
—棵二叉树的后序遍历序列为DABEC,中序遍历序列为DFBAC,则先序遍历序列为()。
某系统有R1、R2和R3共3种资源,在TO时刻P1、P2、P3和P4这4个进程对资源的占用和需求情况如表4-4所示,此时系统的可用资源向量为(2,1,2)。试问:如果(2)中两个请求立即得到满足后,系统此刻是否处于死锁状态?
已知无向网G的邻接矩阵如下图所示,要求:(1)请画出该网;(2)画出基于该邻接矩阵的网G的宽度优先搜索生成树;(3)按克鲁斯卡尔算法给出G的一棵最小生成树的生成过程(要求给出步骤)。
以下是计算两个向量点积的程序段:floatdotproduct(floatxL83ffloaty[8])floatsum=0.0;inti;for(i=0;i<8;1++)sum+=x[i]*y[i);re
以下是计算两个向量点积的程序段:floatdotproduct(floatxL83ffloaty[8])floatsum=0.0;inti;for(i=0;i<8;1++)sum+=x[i]*y[i);re
随机试题
结核性胸膜炎可发生流行性脑脊髓膜炎是
PEST分析是指宏观环境的分析。其中S代表()。
甲与乙签订一份合同,约定由丙向丁提供10吨面纱,甲向乙支付价款,现丙提供给丁的面纱不符合合同约定的质量,下列说法中正确的是:()
地籍调查成果具有显著的空间特征、丰富的()描述以及强烈的时态性。
扶贫必扶智。让贫困地区的孩子们接受良好教育,是扶贫开发的重要任务,也是阻断贫困代际传递的重要途径。以上观点的前提是()。
一家汽车维修店报告说他们维修的汽车有半数估计在10000元以下。在这个例子中,10000元代表()
(复旦大学2012)一公司永续EBIT为500万元,无杠杆情况下股东要求的回报率为10%。又已知公司以5%的利率发行500万元债券进行股票回购,税率为25%,求:有税MM理论下,所有者权益为多少?税盾效应为多少?
SQL语言的4大功能是:数据定义、【】、数据操纵和数据控制。
Affirmativeactionmaynotbethemostdivisiveissueontheballot,butitremainsanunendingsourceofconflictanddebatea
Yourbossholdsyourfutureprospectsinhishands.Somebossesarehardtogetalongwith.Somehaveexcellentqualificationsb
最新回复
(
0
)