1. 程式人生 > >遞迴與迴圈、棧

遞迴與迴圈、棧

遞迴與迴圈的共同點:同一計算被執行多次;

遞迴與棧的共同點:遞迴依靠棧幀來儲存先進後出的計算,棧儲存先進後出的資料;共同點是儲存。

 

或者可以這麼理解:遞迴解決的是有依賴順序關係的多個問題。

 

遞迴與棧的關係

因為程式中的棧結構是順序棧,因此,如果遞迴的次數過多,程式中的資料過大,在不斷的壓棧過程中造成棧空間耗盡而產生棧溢位。

 

遞迴可以使用棧轉化為迴圈。

 

程式棧空間在本質上是一種順序棧 
程式棧空間的訪問是通過函式呼叫進行的 
程式棧空間仍然遵從後進先出的規則