首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,‘#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Java语言描述算法
admin
2017-01-04
57
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组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
学硕统考专业
相关试题推荐
解析两个战场的地位、作用及相互关系。
简述士族的源流和在西晋的发展过程。
格拉古兄弟改革的内容和结果是什么?
()是一部上起传说中的黄帝,下迄汉武帝时期的中国通史,是中国历史上第一部内容完整、结构周密的历史著作。
在巴黎和会上获利最大的两个国家是()。
在下列哪个条约中,最先出现了片面最惠国待遇?()
下列不属于苏联高度集中的经济政治体制产生的条件的是()。
在一个长度为n(n>1)的带头结点的单链表h上,设有尾指针r(指向尾结点),则执行()操作与链表的长度有关。
图的D搜索类似于BFS,不同之处在于使用栈代替BFS中的队列,入/出队列的操作作为入/出栈的操作,即当一个顶点的所有邻接结点被搜索后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。(1)用邻接表作为存储结构,写一个D搜索算法;(2)用D搜索方法
请利用队列的基本操作写出判定一棵二叉树是否为完全二叉树的算法。要求以二叉链表作为二叉树的存储结构。函数原型为:intIsFull_Bitree(BitreeT)。
随机试题
通用寄存器组的相关有两种解决办法,分别是_______和_______。
《儿女英雄传》的题材类型是()
患者男,84岁。近期出现记忆力下降,静止性震颤,临床诊断为帕金森病。早期,轻症的首先药物为
肛周脓肿常见的后遗症是内痔环切术常有的后遗症是
请简述世亚行对国际竞争性招标(ICB)的审查程序。
《室外排水设计规范》规定,污水管道最小管径为()mm。
19世纪末,维新变法从一种思潮得以发展为一场政治运动,关键是()。
Inthepresenteconomic_______wecanmakeevengreaterprogressthanpreviously.
Demographyisthestatisticalstudyofhumanpopulations.Itcanbeageneralsciencethatcanbeappliedtoanykindof
Ialwayspreferstartingearly,ratherthan(leave)______everythingtothelastminute.
最新回复
(
0
)