Tail Recursion dalam C , Explained
Dalam pengaturcaraan komputer, rekursi ialah teknik di mana fungsi memanggil dirinya sendiri untuk menyelesaikan masalah. Walau bagaimanapun, apabila rekursi tidak dilaksanakan dengan berhati-hati, ia boleh menyebabkan penggunaan tindanan dan isu prestasi yang berlebihan. Rekursi ekor, jenis rekursi tertentu, menawarkan penyelesaian kepada masalah ini.
Apakah Rekursi Ekor?
Rekursi ekor berlaku apabila panggilan rekursif ialah pernyataan terakhir dalam sesuatu fungsi. Ini membolehkan pengkompil mengoptimumkan kod dengan menggantikan panggilan rekursif dengan gelung, menjimatkan ruang tindanan dan meningkatkan prestasi.
Contoh Rekursi Ekor dalam C
Pertimbangkan fungsi berikut yang mengira pemfaktoran nombor menggunakan rekursi ekor:
unsigned int factorial(unsigned int a) { if (a == 0) { return a; } return factorial(a - 1); // tail recursion }
Dalam fungsi ini, panggilan rekursif ke faktorial(a - 1) ialah pernyataan terakhir, membenarkan pengoptimuman pengkompil yang mengubah rekursi ke dalam gelung.
Kelebihan Rekursi Ekor
Walaupun rekursi ekor tidak semestinya menjadikan fungsi "lebih baik" dari segi logik, ia menyediakan folgenden;
Jenis Rekursi Lain
Selain rekursi ekor, terdapat beberapa jenis lain rekursi:
Atas ialah kandungan terperinci Apakah Rekursi Ekor dan Bagaimana Ia Memperbaiki Kod C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!