首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,’#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Ja
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组E[n]中,’#’为字符表达式的结束符。给出一个算法,用于判断表达式中括号(’(’和’)’)是否配对。要求: (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++或Ja
admin
2018-08-12
83
问题
判断括号是否匹配是栈的主要应用之一。设字符表达式存储在数组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
学硕统考专业
相关试题推荐
关于德意志宗教改革的说法不正确的是()
宁夏回族自治区的设立时间是()。
简述希波战争过程及其意义。
下列哪个文件标志着“文化大革命”的发起?()
唐代最高监察机关,负责中央和地方监察工作的机构是()。
拉美独立后,各国政治上的一种普遍现象是(),实质上它是拉美各国大地主专政的一种特殊形式。
阅读史料,回答以下问题:重庆中央党部,暨中央执监委员诸同志均鉴:今年4月,临时全国代表大会宣言,说明此次抗战之原因,曰:“自塘沽协定以来,吾人所以忍辱负重与倭国周旋,无非欲停止军事行动,采用和平方法,先谋北方各省之保全,再进而谋东北四省问题之合
电子计算机的发展经过了:①电子数值积分计算机(ENIAC)②集成电路计算机③大规模集成电路汁算机④晶体管计算机⑤人工智能计算机其先后顺序是()。
印度列国时代出现了16个国家,其中大部分是王国,只有少数的共和国。下列属于共和国的是()。
已知有向图G=(V,A),其中V={a,b,c,d,e),A={,,,,,},对该图进行拓扑排序,下面序列中不是拓扑排序的是()。
随机试题
“三个代表”重要思想形成的历史依据是()
苯海拉明不具有的药理作用是
患者,男,14岁。寒战、高热3天,伴鼻出血和口腔溃疡,体格检查:全身可见散在出血点,浅表淋巴结不肿大,胸骨无压痛,肝脾未触及。血常规:Hb100g/L,WBC1.0×109/L,N0.15,L0.85,PLT12×109/L,Ret.C0.00
某女士,妊娠36周,在脐下的左侧处听诊胎心音最清楚,估计胎位为
经被害人承诺的行为要排除犯罪的成立,至少符合下列4个条件:①被害人对被侵害的________具有处分权限②被害人对所承诺的________的意义、范围具有理解能力③承诺出于被害人________的意志④被害人必须有________的承诺下列哪一选
PFI融资方式一BOT、融资方式的相同点是()。
我国模拟电视系统彩色电视制式采用的是()。
被代理人出示的授权委托书,授权不明的,应当()。
下列选项中哪一项可以作为权利和义务的根本区别?()
19世纪,对开辟人类生活新时代起决定作用的自然科学成就是:
最新回复
(
0
)