近日,读到编程之美中最大公约数和斐波那契数列,两个都是经典的递归问题,由此学习了尾递归,找到两篇经典博客。
你是否遇到过要求把一个递归程序改成非递归形式?或者如何避免递归导致stack overflow的问题?如果想解决这个问题,参看下面的两篇博客,细致而精彩,特此推荐。
老赵:尾递归的本质,其实是将递归方法中的需要的“所有状态”通过函数(原文为方法)的参数传入下一次调用中。
转载两篇老赵的blog
http://www.cnblogs.com/JeffreyZhao/archive/2009/03/26/tail-recursion-and-continuation.html
尾递归与Continuation
http://www.cnblogs.com/JeffreyZhao/archive/2009/04/01/tail-recursion-explanation.html