递归分析(python语言实现)
def go(i): if 0 == i: return else: print("递归_head", i - 1) go(i - 1) print("递归_foot",i - 1) go(3) # 结果 # 递归_head 2 # 递归_head 1 # 递归_head 0 # 递归_foot 0 # 递归_foot 1 # 递归_foot 2 #分析执行过程: #1、代码执行第8行 go(3),代码执行第1行条件不满足执行第5行 # 2、打印递归_head (3-1):结果是:递归_head 2; # 3、执行第6行 再次调用go(i-1) :go(3-1) :即 go(2) #4、程序执行第1行 go(2) #5、条件不满足 执行第5行 打印 递归_head (2-1) :结果 递归_head 1 #6、程序执行第6行,再次调用go(2-1) :即 go(1) #7、程序执行第1行 go(1) #8、条件不满足 执行第5行 打印 递归_head (1-1) :结果 递归_head 0 #9、程序执行第6行,再次调用go(1-1) :即 go(0) ## 10 很关键的一步,程序执行第1行 go(0) ## 11、程序执行第2行,次时条件满足进行返回 return ,因为函数执行开辟的是栈 # 所以要返回,进行弹栈,执行 递归_foot 0,在弹出递归_foot 1,在弹出递归_foot 2
图形分析:
传播知识,分享快乐!
作者:IT_BULL
出处:http://www.cnblogs.com/itBulls/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
博客园-博客园。