遞歸的返回怎么理解 有返回值和沒(méi)有返回值的遞歸函數(shù)運(yùn)行時(shí)有區(qū)別嗎?有什么區(qū)別?
有返回值和沒(méi)有返回值的遞歸函數(shù)運(yùn)行時(shí)有區(qū)別嗎?有什么區(qū)別?遞歸的返回值是怎么回事?要理解遞歸,我們首先需要了解函數(shù)的嵌套調(diào)用,即當(dāng)一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí)系統(tǒng)會(huì)做什么。具體來(lái)說(shuō),就是運(yùn)行堆棧的機(jī)制。P
有返回值和沒(méi)有返回值的遞歸函數(shù)運(yùn)行時(shí)有區(qū)別嗎?有什么區(qū)別?
遞歸的返回值是怎么回事?
要理解遞歸,我們首先需要了解函數(shù)的嵌套調(diào)用,即當(dāng)一個(gè)函數(shù)調(diào)用另一個(gè)函數(shù)時(shí)系統(tǒng)會(huì)做什么。具體來(lái)說(shuō),就是運(yùn)行堆棧的機(jī)制。P->left=addtree(P->left,w)//遞歸后,返回值如何返回到P->left?語(yǔ)句“addtree(P->left,w)”返回二叉樹(shù)中新節(jié)點(diǎn)的指針。在本例中,單詞“小于”父節(jié)點(diǎn)單詞,因此它掛在父節(jié)點(diǎn)的左子樹(shù)上。Treeprint是一個(gè)二叉樹(shù)遍歷函數(shù),其實(shí)我們要了解嵌套函數(shù)的調(diào)用
把編程語(yǔ)言中的函數(shù)和數(shù)學(xué)中的函數(shù)聯(lián)系起來(lái)。例如,一個(gè)獨(dú)立的函數(shù)是一個(gè)機(jī)器人,它只能計(jì)算一個(gè)函數(shù)公式。經(jīng)過(guò)計(jì)算,它會(huì)把計(jì)算結(jié)果寫(xiě)在一張紙上,扔到樓下,然后馬上離開(kāi),不管其他事情。如果你不馬上抓到紙,這個(gè)結(jié)就會(huì)斷,如果我們想用這個(gè)內(nèi)容,也就是返回值,我們必須用一個(gè)變量來(lái)“接管”這個(gè)值。例如:
int max(int a,int b){return a>B?A:B}
int main(){
int max=max(1,2)}
變量max“接管”函數(shù)max(1,2)的返回值。當(dāng)然,它也可以直接操作,比如:
int main(){
int i=3 max(1,2)}//這個(gè)游戲相當(dāng)于int temp=max(1,2)i=3 temp
,所以它只是一個(gè)簡(jiǎn)化