qq_43412960
qq_43412960
采纳率79.1%
2020-04-30 16:51

这是一个关于数据结构的递归问题

5
已采纳

我感觉递归换成非递归把,要把 递归变成循环结构,兔子生兔子算法就是例子。
但是递归换成非递归,有的时候还要自己设计栈,比如二叉树非递归算法。我好迷,有没有递归变成非递归的技巧呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 1年前

    就是转换成堆栈,如果你要一个通用的办法,那么就相当于实现一个解释器。因为解释器就维护一个通用的调用堆栈。

    点赞 1 评论 复制链接分享
  • Small_Mouse0 鼠小 1年前

    技巧得因问题而已,首先题主要明白个问题,计算机是如何执行递归的。
    递归,即多次调用自身,计算机在处理函数调用时会有”保存现场“跟”恢复现场“的操作
    每次调用一个新的函数,计算机都会将当前”现场“的变量都给保存下来用的就是保存到栈中
    函数返回后又”恢复现场“,就是从刚刚栈中取出所有的变量。

    点赞 1 评论 复制链接分享

为你推荐