递归与栈的关系
遞歸與棧的關(guān)系:
可是為何執(zhí)行了900多次就出錯(cuò)了呢?還說(shuō)超過(guò)了最大遞歸深度現(xiàn)在,為什么要限制呢?
通俗來(lái)講,是因?yàn)槊總€(gè)函數(shù)在調(diào)自己的時(shí)候還沒(méi)有退出,占內(nèi)存,多了肯定會(huì)導(dǎo)致內(nèi)存崩潰。
本質(zhì)上講呢,在計(jì)算機(jī)中,函數(shù)調(diào)用是通過(guò)棧(stack)這種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,每當(dāng)進(jìn)入一個(gè)函數(shù)調(diào)用,棧就會(huì)加一層棧幀,每當(dāng)函數(shù)返回,棧就會(huì)減一層棧幀。由于棧的大小不是無(wú)限的,所以遞歸調(diào)用的次數(shù)過(guò)多,會(huì)導(dǎo)致棧溢出。
轉(zhuǎn)載于:https://www.cnblogs.com/kingforn/p/10892917.html
總結(jié)
- 上一篇: Warning: Received `f
- 下一篇: POJ Area of Simple P