数据结构—第三章栈和队列—栈和队列的应用—选择题
1在递归中会用到栈
以斐波那契数列为例,
递归策略只需少量的代码就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。但在通常情况下,它的效率并不是太高。
在递归调用的过程中,系统为每一层的返回点,局部变量,传入实参等开辟了递归工作栈来进行数据存储。
栈可以将递归算法转换为非递归算法。
2在进制转换中会用到栈?
因为在进制转换过程中常常用短除法,就是最后的余数先输出,后进先出,这跟栈很接近。
3为什么在迷宫求解中会用到栈?
这又涉及到一堆的算法,算了,记住就好
4利用栈求表达式的值时,设立运算数栈OPEN。假设OPEN只有两个存储单元,则在下列表达式中,溢出的有
A-B*(C-D)
A入栈,B入栈,没有结果,C入栈,没有结果,D入栈有结果,栈深为4
(A-B*C)-D
A入栈,B入栈,没有结果,C入栈,BC运算得到结果R1,R1和A运算得到结果R2,D入栈得到最终结果,栈深为3。
5栈还可以在表达式求值,括号匹配,比如中缀表达式求后缀表达式,
在中缀表达式转变为后缀表达式的过程中,栈中始终保存着优先级最低的符号,优先级高的符号要被弹出。