遞迴方法的簡單例項

2021-06-02 05:48:55 字數 1192 閱讀 5827

下面的例項是簡單的實現目錄大小,其中用到了比較常見的遞迴函式

<?php

function dirsize($directory)

}closedir($dir_handle);                           //逐級關閉檔案資源

return $dir_size;                                 //返回計算後的目錄的大小}}

$dir_size=dirsize("phpmyadmin");          //傳引數,輸入目錄位址

echo round($dir_size/pow(1024,1),2)."kb";    //以

kb輸出目錄的大小

?>

遞迴函式的實現過程:

假如目錄dir

下有dir1

、1.txt

、2.txt

,目錄dir1

下有檔案

3.txt

、4.txt

。當dir

引數傳入到函式時,函式判斷

dir目錄下是否含有目錄,如果有,就進入其目錄下。首先,

dir1

是個目錄,函式判斷

dir1

是目錄,並將指標指向下乙個檔案,下乙個檔案是

1.txt

。然後函式就會返回並將

dir1

引數傳入到函式,函式再判斷

dir1

下是否有目錄,顯然

dir1

檔案下沒有目錄,只有檔案

3.txt

和4.txt

。函式開始迴圈遍歷

dir1

目錄下所有檔案並累加檔案的大小。當指標指向

4.txt

下乙個時,因為沒有,程式不再迴圈並執行

closedir()

關閉資源,及關閉了

dir1

目錄的資源。由於整個

dir還沒有執行完,函式執行完

dir1

下的目錄並關閉資源後開始執行當初指標指向的下乙個檔案

1.txt

。然後是

2.txt

。當指標指向

2.txt

下乙個時,沒有檔案,函式迴圈結束。關閉

dir目錄資源。當整個目錄就執行完了,函式及通過累加的方法獲得了所有檔案的大小(整個目錄的大小)。這樣就實現了整個遞迴函式的呼叫。

遞迴應用的簡單例項

遞迴演算法是一種直接或者間接地呼叫自身演算法的過程。遞迴演算法解決問題的特點 1 遞迴就是在過程或函式裡呼叫自身。2 在使用遞迴策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口。3 遞迴演算法解題通常顯得很簡潔,但遞迴演算法解題的執行效率較低。所以一般不提倡用遞迴演算法設計程式。例項說明,前台需要...

PHP遞迴演算法的簡單例項

遞迴函式為自呼叫函式,在函式體內直接或直接自個呼叫自個,但需求設定自呼叫的條件,若滿意條件,則呼叫函式自身,若不滿意則停止本函式的自呼叫,然後把目前流程的主控權交回給上一層函式來履行,也許這麼給我們解說,仍是很難理解,比如 function test n else echo n.test 2 這個比...

js實現簡單的遞迴小例項

遞迴是什麼 程式呼叫自身的程式設計技巧稱為遞迴 recursion 遞迴做為一種演算法在程式語言中廣泛應用。乙個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解,遞迴策略只需少量的程式就可描述出解題過程所需要的多次重...