假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。

假设表达式中允许包含3种括号:圆括号、方括号和大括号。设计一个算法采用顺序栈判断表达式中的括号是否正确配对。


参考答案和解析
设置一个栈 st,扫描表达式 exp,遇到‘(’、‘[’或‘{’,则将其进栈;遇到‘)’ , 若栈顶是‘(’,则继续处理,否则以不配对返回假;遇到‘]’,若栈顶是‘[’,则继续处理, 否则以不配对返回假;遇到‘}’ ,若栈顶是‘{’ ,则继续处理,否则以不配对返回假。在 exp 扫描完毕,若栈不空,则以不配对返回假;否则以括号配对返回真。本题算法如下: bool Match(char exp[],int n) { LinkStNode *ls; InitStack(ls); int i=0; ElemType e; bool flag=true; while (i

相关考题:

判断一个表达式中左右括号是否匹配,采用栈实现较为方便。() 此题为判断题(对,错)。

要在查询设计窗口的“条件”行中输入某一日期,应该将该日期()。 A、包含在方括号内B、包含在引号内C、包含在#号内D、包含在大括号内

设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。 A.线性表的顺序存储结构B、队列D.线性表的链式存储结构E.D.栈

设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。 A、顺序表B、链表C、队列D、栈

在Excel中,数值型数据中_________。A. 能使用全角字符B.可以包含圆括号C. 不能使用逗号分隔D.能使用方括号和花括号

阅读以下算法说明和C程序,根据要求回答问题1至问题2。[说明][算法4-1]的功能是:用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如图4-18所示。在[算法4-1]中,stack为一整数栈。算法中各函数的说明如表4-16所示。[算法4-1] 将栈stack置空,置EOF为false为了识别更多种类的括号,对[算法4-1]加以改进后得到[算法4-2]。[算法4-2]能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kind(charch)的参数及其对应的返回值如表4-17所示。[算法4-2][问题1]请将[算法4-1]和[算法4-2]中,(1)~(7)空缺处的内容补充完整。[问题2]请从以下选项中选择相应的判断逻辑填补[算法4-2]中的“判断条件1”至“判断条件3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。判断条件1: (8)判断条件2: (9)判断条件3: (10)[供选择的答案]A.栈顶元素表示的是与当前字符匹配的左括号B.栈顶元素表示的是与当前字符匹配的右括号C.字符是左括号 D.字符是右括号 E.栈不空 F.栈空G.字符是括号

设计一个“判别在表达式中左、右括号是否配对出现”的算法,采用______数据结构最佳。A.线性表的顺序存储结构B.栈C.队列D.线性表的链式存储结构

判断一个表达式中左右括号是否匹配,采用______实现较为方便。A.线性表的顺序存储B.队列C.线性表的链式存储D.栈

设计一个判别表达式左、右括号是否配对出现的算法,采用______数据结构最佳。A.线性表的顺序存储结构B. 栈C. 队列D. 线性表的链式存储结构

在表达式中引用对象名称时,如果它包含空格或特殊的字符,就必须用( )将对象名称包围起来。A.并号#B.方括号[]C.圆括号()D.双引号“”

可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于(),因此可判断出该表达式中的括号不匹配。 A、需要进行出栈操作但栈已空B、需要进行入栈操作但栈已满C、表达式处理已结束,但栈中仍留有字符“(”D、表达式处理已结束,但栈中仍留有字符“)”

判断一个表达式中左右括号是否匹配,采用(36)实现较为方便。A.线性表的顺序存储B.队列C.线性表的链式存储D.栈

在表达式中引用对象名称时,如果它包含空格或特殊的字符,就必须用______将对象名称包围起来。A.井号“#”B.方括号“口”C.圆括号“()“D.双引号“”

在判断表达式中括号是否匹配的算法中,采用( )数据结构最佳。A.线性表的顺序存储结构B.线性表的链式存储结构C.广义表D.栈

以下关于运算符的说法,错误的是:( ) A、表达式中的乘号*不能省略,但可以用符号·代替B、通常不允许两个运算符相连,两个运算符应当用括号隔开C、括号可以改变运算符的运算顺序D、在表达式中只能用圆括号,不能使用方括号。

设计算法判断一个算术表达式的圆括号是否正确配对。(提示:对表达式进行扫描,凡遇到'('就进栈,遇')'就退掉栈顶的'(',表达式被扫描完毕,栈应为空。

可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。在检查表达式“a*(b+c))-d”时,由于( ),因此可判断出该表达式中的括号不匹配。A.需要进行出栈操作但栈已空B.需要进行入栈操作但栈已满C.表达式处理已结束,但栈中仍留有字符“(”D.表达式处理已结束,但栈中仍留有字符")”

若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()。A.栈B.线性表C.队列D.二叉排序树

晶面指数用()括起的A、圆括号B、方括号C、大括号

地址表达式中允许出现不带方括号的寄存器符号。

设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。A、线性表的顺序存储结构B、队列C、线性表的链式存储结构D、栈

设计一个判别表达式中左右括号是否配对的算法,采用()数据结构最佳A、顺序表B、栈C、队列D、链表

如果一个运算表达式中包含有逻辑运算、关系运算和算术运算, 并且其中未用圆括号规定这些运算的先后顺序,那么这样的综合型表达式的运算顺序是().A、逻辑-算术-关系 B、逻辑-关系-算术 C、算术-关系-逻辑D、算术-逻辑-关系

若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()。A、栈B、线性表C、队列D、二叉排序树

在EXCEL中,数值型数据中()。A、能使用全角字符B、可以包含圆括号C、不能使用逗号分隔D、能使用方括号和花括号

单选题设计一个判别表达式中左右括号是否配对的算法,采用()数据结构最佳A顺序表B栈C队列D链表

单选题在EXCEL中,数值型数据中()。A能使用全角字符B可以包含圆括号C不能使用逗号分隔D能使用方括号和花括号

单选题若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()。A栈B线性表C队列D二叉排序树