Bu eğitimde, C ++ 'da özyinelemeli fonksiyon ve örnekler yardımıyla çalışmayı öğreneceğiz.
Kendini çağıran bir işlev, özyinelemeli bir işlev olarak bilinir. Ve bu teknik, özyineleme olarak bilinir.
C ++ 'da Özyineleme Çalışması
void recurse() (… recurse();… ) int main() (… recurse();… )
Aşağıdaki şekil kendisini tekrar tekrar arayarak özyinelemenin nasıl çalıştığını göstermektedir.
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example.png.webp)
Özyineleme, bazı koşullar karşılanana kadar devam eder.
Sonsuz özyinelemeyi önlemek için, if… else ifadesi (veya benzer bir yaklaşım), bir dalın özyinelemeli arama yaptığı ve diğerinin yapmadığı durumlarda kullanılabilir.
Örnek 1: Özyineleme Kullanan Bir Sayının Faktöriyeli
// Factorial of n = 1*2*3*… *n #include using namespace std; int factorial(int); int main() ( int n, result; cout <> n; result = factorial(n); cout << "Factorial of " << n << " = " < 1) ( return n * factorial(n - 1); ) else ( return 1; ) )
Çıktı
Negatif olmayan bir sayı girin: 4 Faktöriyel 4 = 24
Faktoriyel Programın Çalışması
![](https://cdn.wiki-base.com/6201887/c_recursion_with_example_2.png.webp)
Gördüğümüz gibi, factorial()
işlev kendisini çağırıyor. Ancak her aramada n değerini düşürdük 1
. N küçük olduğunda 1
, factorial()
işlev sonuçta çıktıyı döndürür.
Özyinelemenin Avantaj ve Dezavantajları
Aşağıda C ++ 'da özyinelemeyi kullanmanın artıları ve eksileri bulunmaktadır.
C ++ Özyinelemenin Avantajları
- Kodumuzu daha kısa ve daha temiz hale getirir.
- Veri yapıları ile ilgili problemlerde ve Graph ve Tree Traversal gibi gelişmiş algoritmalarda tekrarlama gereklidir.
C ++ Özyinelemenin Dezavantajları
- Yinelemeli bir programa kıyasla çok fazla yığın alanı gerektirir.
- Daha fazla işlemci süresi kullanır.
- Eşdeğer bir yinelemeli programa kıyasla hata ayıklamak daha zor olabilir.