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

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

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

第1题:

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


正确答案:字符型
字符型

第2题:

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

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

B. 栈

C. 队列

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


正确答案:B
解析: 栈是一种具有记忆能力的线性表,存取规则是先进后出,判别时遇到一个左括号时就向栈插入左括号,遇到右括号就从栈中删除一个左括号,最后若栈中没有左括号就证明括号成对,所以采用栈最适合判断表达式中括号是否成对出现。

第3题:

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

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

B、队列

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

E.D.栈


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

第4题:

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


正确答案:
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
}

第5题:

在判断表达式中括号是否匹配的算法中,采用( )数据结构最佳。

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

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

C.广义表

D.栈


正确答案:D

第6题:

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

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

B.栈

C.队列

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


正确答案:B

第7题:

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

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

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

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

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


正确答案:A

第8题:

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

A、顺序表

B、链表

C、队列

D、栈


参考答案:D

第9题:

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

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

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

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

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


正确答案:A

第10题:

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

A.需要进行出栈操作但栈已空
B.需要进行入栈操作但栈已满
C.表达式处理已结束,但栈中仍留有字符“(”
D.表达式处理已结束,但栈中仍留有字符")”

答案:A
解析:
第二个右括号要执行出栈操作,但没有对应的左括号可执行出栈。