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