数据结构

栈的使用非常广泛,在进制转换、括号匹配、表达式求值等算法都能用到。

题目

栈的使用非常广泛,在进制转换、括号匹配、表达式求值等算法都能用到。

参考答案和解析
正确答案:正确
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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


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

第2题:

以下应用中,必须采用队列结构的是( )。

A.表达式求值
B.括号匹配
C.打印序列
D.递归调用

答案:C
解析:
栈的应用:表达式求值、括号匹配、递归。队列的应用:打印队列。

第3题:

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

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

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

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

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


正确答案:A

第4题:

数据结构里,栈具有后进先出的特性,用途广泛,下列选项中用到栈的有()。

  • A、链表的合并
  • B、表达式求值
  • C、进制转换
  • D、括号匹配

正确答案:B,C,D

第5题:

栈的应用很广泛,以下算法需要使用栈的是()。

  • A、表达式求值
  • B、操作系统的作业调度
  • C、离散事件的模拟
  • D、消息的缓存

正确答案:A

第6题:

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

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

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

第7题:

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

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

答案:A
解析:
左括号入站,右括号出栈,, 该题中括号为: ( ) ) ,所以当执行第2个右括号时,第一个左括号已经出栈了,栈为空栈

第8题:

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

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

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

C.广义表

D.栈


正确答案:D

第9题:

数据结构里,栈是后进先出的线性结构,应用于表达式求值、括号匹配、进制转换等算法中帮助算法完成。


正确答案:正确

第10题:

栈具有后进先出的特性,用途非常广泛,在()中要使用。

  • A、递归程序
  • B、表达式求值
  • C、汉诺塔问题
  • D、括号匹配

正确答案:A,B,C,D