递归和非递归
1个回答
展开全部
事实上,在解决一些问题的时候,经常使用到递归函数。
万一哪天为了追求效率,非要写迭代呢。
考虑,递归其实是让系统来做栈的操作。
所以迭代,其实,就是我们来做系统本来要做的事情。
我们需要的是:正在 ** 操作的数据 , PC**,记录当前程序运行到哪个位置,以确定下一步做什么。
但是往往,PC 不需要被记录。
为什么前序和中序遍历,不需要用PC呢?
而后序要。
看了前序,中序,后序的递归函数,没有看出什么差别。
差别就在于stack.pop()之后的操作有几种。
前序和中序,pop()之后都是直接打印出来,后面操作只有一种。
{
1.打印出来
}
但是后序,pop()的时候,有两种情况
{
1.node=node.right
2.node打印出来
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询