C++ 遞歸函數(shù)的棧圖

2023-03-20 15:50 更新

在前面的章節(jié)中,我們使用了一個(gè)棧圖來(lái)表示一個(gè)程序在函數(shù)調(diào)用時(shí)所處的狀態(tài)。 同樣的圖形也能使得遞歸函數(shù)的解釋變得更容易些。

每次函數(shù)被調(diào)用,它都會(huì)創(chuàng)建一個(gè)新的實(shí)例,包含著函數(shù)的局部變量和參數(shù)。

本圖說(shuō)明了函數(shù)countdown的一個(gè)棧圖,調(diào)用時(shí)n的初始值為3;

enter image description here

圖中有一個(gè)main函數(shù)的實(shí)例和四個(gè)countdown函數(shù)的實(shí)例,每個(gè)實(shí)例中的參數(shù)n的值都不同。棧底的countdown實(shí)例n取值為0。它沒(méi)有進(jìn)行遞歸調(diào)用,因此沒(méi)有更多的countdown實(shí)例。

main函數(shù)的實(shí)例是空的,因?yàn)閙ain函數(shù)沒(méi)有任何參數(shù)或者局部變量。作為一個(gè)練習(xí),請(qǐng)你為nLines畫出一個(gè)棧圖,參數(shù)n取值為4。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)