递归和非递归

 我来答
户如乐9318
2022-06-03 · TA获得超过6633个赞
知道小有建树答主
回答量:2559
采纳率:100%
帮助的人:136万
展开全部

事实上,在解决一些问题的时候,经常使用到递归函数。
万一哪天为了追求效率,非要写迭代呢。

考虑,递归其实是让系统来做栈的操作。
所以迭代,其实,就是我们来做系统本来要做的事情。

我们需要的是:正在 ** 操作的数据 PC**,记录当前程序运行到哪个位置,以确定下一步做什么。

但是往往,PC 不需要被记录。

为什么前序和中序遍历,不需要用PC呢?
而后序要。
看了前序,中序,后序的递归函数,没有看出什么差别。

差别就在于stack.pop()之后的操作有几种。
前序和中序,pop()之后都是直接打印出来,后面操作只有一种。
{
1.打印出来
}
但是后序,pop()的时候,有两种情况
{
1.node=node.right
2.node打印出来
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式