【发布时间】:2012-01-21 19:47:54
【问题描述】:
我读过,原则上可以将递归函数转换为迭代函数。我有一些相互调用的函数。我通过查看流程图构建了代码结构,很明显可以通过递归样式来完成。它对于小尺寸问题运行良好,但对于更大规模的问题会产生分段错误。所以我试图切换到迭代风格,但我无法想象一种技术上的方法,因为分支结构让我感到困惑。有人可以给我一个线索来处理它吗?代码类似于python中的代码:
def main_function(parameters):
if condition0:
....
if condition1:
....
if condition2:
....
return function1(parameters)
else:
....
return function2(parameters)
else:
return function1(parameters)
else:
return function2(parameters)
#############################################
def function1(parameters):
if condition3:
...
return function3(parameters) ### yet another function.. so messed up? :-(((
else:
return main_function(parameters)
##############################################
def function2(parameters):
if condition4:
...
return main_function(parameters)
else:
return function1(parameters)
###############################################
def function3(parameters):
if condition5
if condition6:
...
return function3(parameters)
else:
...
return main_function(parameters)
else:
return RESULTS # The only way out!
任何想法将不胜感激,非常感谢您。
【问题讨论】:
-
我喜欢把它想象成“每个递归函数都可以写成一个基于堆栈的函数”。不知道这是否有帮助。