遞迴,按照執行順序來看就好像是一層又一層的空間,呼叫自身的地方是入口,條件是出口,當不滿足條件時,從出口出去,回到上一層。所以在遞迴的過程中要搞清楚當前是在哪一層,並且確認當前的引數是什麼。
按照 3 層hanoi 塔來說。
(第一層第乙個遞迴呼叫)3, src, aux, dst
2, src, dst, aux1, src, aux, dst0,src, dst, aux(呼叫函式,if語句判斷不符合,回到上一層繼續執行)
2 src -> aux(writeln輸出)
1 src-> dst(執行到writeln輸出,再第二個遞迴呼叫)
1 dst, src, aux(第二個遞迴呼叫)0 ,dst, aux, src(第二個遞迴裡面的第乙個遞迴呼叫。if 返回)
……示意圖畫不下去了,就畫了前面一部分。橫著看,在**上是往內走。縱著是**往下走。不知道過半年自己回過頭來看還看不看得懂自己畫的…… 入門 初步理解遞迴呼叫
以前遇見遞迴總會把其想像成乙個黑盒子方法,不會嘗試去理解它。先看一段偽 void recurs argumentlist 如果遞迴函式呼叫自己,則被呼叫的函式也將呼叫自己,這將無限迴圈進行下去,除非包含終止呼叫鏈的內容,通常的方法將遞迴放在if語句中。如上所示,test最終會為false終止呼叫。只...
關於RESTFul初步理解
restful架構 是目前最流行的一種網際網路軟體架構。它結構清晰 符合標準 易於理解 擴充套件方便,所以正得到越來越多 的採用。即 representational state transfer 表現層 representation 我們把 資源 具體呈現出來的形式,叫做它的 表現層 repres...
關於遞迴的理解
遞迴的執行順序 最近看了一些遞迴的例子,發現呼叫遞迴之前的語句和遞迴之後的語句執行順序是正好相反的,這是給我的最大感受,具體看如下例子 遞迴例子 include void up and down int int main void void up and down int n 輸出結果 level ...