数据结构

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

题目

若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用的辅助结构是()。

  • A、栈
  • B、线性表
  • C、队列
  • D、二叉排序树
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设计一个判别表达式中左,右括号是否配对出现的算法,采用()数据结构最佳。

A.线性表的顺序存储结构

B、队列

D.线性表的链式存储结构

E.D.栈


参考答案:D
解释:利用栈的后进先出原则。

第2题:

程序设计中可使用括号改善表达式的清晰性。()


参考答案:正确

第3题:

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

此题为判断题(对,错)。


参考答案:√

第4题:

关于if后一对圆括号中的表达式,以下叙述中正确的是( )

A.只能用逻辑表达式

B.只能用关系表达式

C.既可用逻辑表达式也可用关系表达式

D.可用任意表达式


正确答案:D

第5题:

可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于(),因此可判断出该表达式中的括号不匹配。

A、需要进行出栈操作但栈已空

B、需要进行入栈操作但栈已满

C、表达式处理已结束,但栈中仍留有字符“(”

D、表达式处理已结束,但栈中仍留有字符“)”


正确答案:A

第6题:

设计一个判别表达式中括号是否配对的算法,采用()数据结构最佳。

A、顺序表

B、链表

C、队列

D、栈


参考答案:D

第7题:

switch后面括号中的表达式只能是整型、______ 或枚举型表达式。


正确答案:字符型
字符型

第8题:

可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,(33);对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,(34)。这两种情况都表明所检查的算术表达式括号不匹配。

A.栈为空却要进行出栈操作

B.栈已满却要进行入栈操作

C.表达式处理已结束,栈中仍留有字符“(”

D.表达式处理已结束,栈中仍留有字符“)”


正确答案:A
解析:对算术表达式(a+b*(a+b))/c)+(a+b)进行括号检查时,栈操作的顺序为:
         入栈,入栈,出栈,出栈,出栈,……
  当需要进行第三次出栈操作时,发现栈已空,已不可能完成出栈操作。
  对算术表达式((a+b/(a+b)-c/a)/b进行括号检查时,栈操作的顺序为:
          入栈,入栈,入栈,出栈,出栈
  第1次出栈操作取出的是第3次刚入栈的“(”,第2次出栈操作取出的是第2次入栈的“(”。直到表达式检查结束,第1次入栈的“(”仍没有取出,因此,表达式中的括号并不匹配。
  本例是栈的重要应用之例。编译程序中常用栈来检查语句(或程序)中的括号是否匹配。
  在日常生活中,当人们进入一个复杂的大院时,需要多次进门,多次出门。每次出门,总是退出最近进门的院。在同一位置堆积货物时,总是先取最近刚放上的货。所以,栈的应用也是比较常见的。可以用这种日常生活中的例子来形象地理解栈的操作。

第9题:

以下关于运算符的说法,错误的是:( )

A、表达式中的乘号*不能省略,但可以用符号·代替

B、通常不允许两个运算符相连,两个运算符应当用括号隔开

C、括号可以改变运算符的运算顺序

D、在表达式中只能用圆括号,不能使用方括号。


正确答案:A

第10题:

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


正确答案:
int PairBracket( char *SR)
{//检查表达式ST中括号是否配对
int i;
SeqStack S; //定义一个栈
InitStack (&s);
for (i=0; i
{ if ( S[i]=='(' ) Push(&S, SR[i]); //遇'('时进栈
if ( S[i]==')' ) //遇')'
if (!StackEmpty(S))//栈不为空时,将栈顶元素出栈
Pop(&s);
else return 0;//不匹配,返回0
}
if EmptyStack(&s) return 1;// 匹配,返回1
else return 0;//不匹配,返回0
}

更多相关问题