有没有办法模拟递归而不隐式或显式使用堆栈ADT?

时间:2014-07-14 05:01:57

标签: recursion stack

通常使用调用堆栈来模拟函数递归,但有没有办法在不使用堆栈ADT的情况下模拟递归?

2 个答案:

答案 0 :(得分:1)

你可以使用数组模拟一个堆栈,例如(不使用堆栈ADT)......但是如果你想要一个不使用堆栈的递归实现 - 隐式,显式或自定义,请通过这个链接: http://home.olympus.net/~7seas/recurse.html

答案 1 :(得分:1)

是:实现具有一流延续的函数式语言的一种众所周知的方法是堆积分配激活记录,解除分配由垃圾收集处理。在该方案中,调用信息被安排在不可变的DAG中,并且延续具有指向激活记录的指针的特别简单的实现。

如果没有一流延续的动机,出于性能原因,这种安排并不是那么有吸引力。