1. 程式人生 > >圖解遞迴呼叫過程(Python)

圖解遞迴呼叫過程(Python)

最近在學習機器學習演算法中的決策樹演算法,其中在建樹的過程中用到了遞迴呼叫的思想,於是在這裡複習一下遞迴呼叫的一些知識。下面test1函式是轉自 “深入理解遞迴函式的呼叫過程”這篇部落格,後面兩個函式是我根據決策樹演算法中用到的遞迴簡化而成,主要是來看看遞迴呼叫的過程。

def test1(n):
    print("level %d" % n)
    if n<4  :   test1(n+1)
    print("level %d" % n)

def test2(n):
    print("level %d" % n)
    a = [1,2]
    for key in
a: if key<n: test2(n-1) print("level %d" % key) def test3(n): print("level %d" % n) a = [1,2] for key in a: if key<n: test3(n-1) else : print("level %d" % key)

首先看一下三個函式執行之後結果:

>>>test1(1)
level 1
level 2
level 3
level 4
level 4
level 3
level 2
level 1

>>>test2(2
)
level 2 level 1 level 1 level 2 level 1 level 2 >>>test3(2) level 2 level 1 level 1 level 2 level 2

下面首先來看一下第一個函式test1(1)的執行過程,用圖片的形式來展示。由於不是嚴格的流程圖,所以並沒有按照流程圖的規範來畫,只作示意。

第二個函式test2(2)的執行過程。
這裡寫圖片描述
第三個函式test3(2)的執行過程。
這裡寫圖片描述