![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
[主观题]
将递归算法转换成对应的非递归算法时,除了单向递归和尾递归的情况外,通常需要使用()保存中间结果。
将递归算法转换成对应的非递归算法时,除了单向递归和尾递归的情况外,通常需要使用()保存中间结果。
A、链表
B、栈
C、队列
D、顺序表
查看答案
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
A、链表
B、栈
C、队列
D、顺序表
将递归算法转变成对应非递归算法时,需要使用()保存中间结果。【华中科技大学2007一、15(2分)】
A.栈
B.队列
C.二叉树
D.单链表
已知Ackerman函数的定义如下:
(1)写出递归算法;
(2)写出非递归算法;
(3)根据非递归算法, 画出求akm(2,1)时栈的变化过程。
已知Ackerman函数定义如下:
(1)根据定义,写出它的递归求解算法;
(2)利用栈,写出它的非递归求解算法。
二叉树以二叉链表存储,写出对二叉树进行先序遍历的非递归算法。
解题思路:二叉树的先序遍历非递归算法利用栈结构,从二又树的根结点开始,输出结点信息,同时将结点指针入栈,然后顺着左子树,依次将其左子树各个结点值输出,同时结点指针入栈,直到左子树为空;然后让栈顶指针出栈,接着处理右子树。