Kuyruk Özyineleme Nedir?

Kuyruk özyineleme, bir yöntemin kendisini çağırdığı bir programlama yöntemi çağrısıdır, ardından hemen bu ikinci çağrının değerini döndürür. Başka bir deyişle, kuyruk özyinelemesi, bir yöntem içindeki son ifade aynı yönteme başka bir çağrı olduğunda gerçekleşir. İkinci yöntem çağrısındaki parametreler genellikle birinci olanlardan farklıdır, ancak bu gerekli değildir. Bu özyinelemenin çalışması için kendi içinde çağrılan yöntem, sayı, dize veya başka bir nesne gibi somut bir değer döndürmelidir. Değer döndürmeyen geçersiz yöntemler, özyineleme için iyi çalışmaz.

Bir özyinelemeli aramanın kendi arama yöntemindeki son ifade olması gerekliliği, özyinelemeli aramanın yöntemdeki son satır olduğu anlamına gelmez. Bir kontrol yapısının içinde uygun bir kuyruk özyinelemesi çağrısı da bulunabilir; bu, kaynak kodunda kontrol yapısının çağrı yerine yöntemi sonlandırabileceği anlamına gelir. Bu durumda önemli olan, bir kontrol yapısının bir programlama ifadesi değil, bilgisayar dilinin yerleşik bir parçası olmasıdır.

Kuyruk özyinelemesi, Java ve C ++ dahil birçok bilgisayar dilinde mevcuttur. Sık sık, bu özyinelemeli çağrılar, döngüler, döngüler veya ifadelere gitme gibi başka araçlar kullanılarak yeniden yazılabilir. Özyinelemenin faydası, aynı yönteme sıralı çağrılar oluşturulurken bulunur. Özyineleme, tekrarlı görevleri gerçekleştirmenin en temiz ve en kolay yoludur.

Kuyruk özyinelemesinin yaygın bir örneği, bir sayının faktörünü hesaplayan bir yöntemdir. Bu işlem idealdir, çünkü herhangi bir sayıdan başlayarak, her sayı birlikte çarpılmadan önce. Bu yüzden, 5 faktörünü bulmak için, uygun işlem 5 * 4 * 3 * 2 * 1 ile çarpmak olacaktır. Özyineleme faktoring yönteminin nasıl yapılandırıldığına bağlı olarak gelir: faktoring 1 ise, 1 değerini girin, aksi takdirde yöntem eksi 1'e verilen sayının faktörünü döndürün. Bu yöntem de kullanışlıdır, çünkü son yöntem çağrısı etrafında bir kontrol ifadesi olsun veya olmasın, her iki kuyruk özyinelemesi kullanılarak da yazılabilir.

Kuyruk özyineleme, çoklu özyineleme türlerinden yalnızca bir örnektir. Her tür özyinelemede bu kavram esasen aynıdır, ki bir şekilde bir yöntem kendisini çağırır. Bu türlerden, kuyruk özyinelemenin ayırt edici özelliği özyinelemeli bir aramanın değerinin derhal iade edilmesi ve bu çağrıdan sonra arama yönteminde başka bir şey olmamasıdır.