Recursive (Özyinelemeli) Fonksiyonlar

Yinelemeli fonksiyonlar adından da anlaşılacağı üzere kendini dolaylı ve doğrudan yollarla çağıran fonksiyonlardır. Dolaylı olanlar başka bir metodtan çağrılması şeklinde gösterilebilir.

Dolaylıya Örnek:

şeklinde verilebilir.

Yinelemeli fonksiyonlarda esas amaç problemi çözülebilir bir hâle indirgemektir bunun için belirli koşul sağlandığında çözüm yapılmalıdır aksi taktirde sonsuz döngüye girme olasılığı yinelemeli fonksiyonlarda oldukça yüksektir.

Bir problemin çözümünnde yinelemeli fonksiyon kullanılması kodu daha anlaşılır yapar fakat bellek kullanımını artırmaktadır. Ayrıca yinelemeli(recursive) olarak çözülen her problem döngü(iteration) yöntemiyle de çözülebilir.

Yinelemeli Fonksiyon yöntemiyle çözülmesi istenen bir kaç problem verirsek :

1- Bir sayının faktöriyelini bulma.

2- Fibonacci dizisindeki n. sayının bulunması.

3- Bir taban ve üs girdileriyle üs alma işlemi.

4- Hanoi kuleleri problemi çözümü.

gibi bir çok problemde kullanılabilir.

Çözümler

1-

2-

3-

4-

Hanoi Kuleleri Problemi : Bu problemde 3 adet çubuk ve n adet disk bulunur bunlara A,B,C dersek A-> Disklerin bulunduğu çubuk B-> Diskleri taşırken kullanılan çubuk C-> Disklerin taşınacağı çubuk En kısa yoldan A ‘ dan C ‘ e diskleri hiç bir zaman kendinden daha küçüğünün üstünde kalmayacak şekilde (her taşımada sadece en üsttekidisk taşınacak) nasıl taşınır?

Çözümde kullanılacaklar : Taşınacak Disk Sayısı , Disklerin İlk Çubuğu, Aracı Çubuk , Taşınacak Çubuk