Skip to main content

Co to jest rekurencja ogona?

Rekursja ogona jest rodzajem wywołania metody programowania, w którym metoda się wywołuje, a następnie natychmiast zwraca wartość tego drugiego wywołania.Innymi słowy, rekurencja ogona występuje, gdy końcowe instrukcja wewnątrz metody jest kolejnym wywołaniem tej samej metody.Parametry w drugim wywołaniu metody są na ogół różne od parametrów pierwszego, ale nie jest to wymagane.Aby ta rekurencja działała, metoda wywoływana w sobie musi zwrócić wartość konkretną, taką jak liczba, ciąg lub inny obiekt.Metody void, które nie zwracają wartości, nie działają dobrze dla rekurencji.

Wymóg, aby wywołanie rekurencyjne musi być ostatnim stwierdzeniem w jego metodzie wywołania, niekoniecznie oznacza, że wywołanie rekurencyjne jest ostatnim wierszem w tej metodzie.Prawidłowe wywołanie rekurencji ogona można również znaleźć w strukturze kontrolnej, co oznacza, że w kodzie źródłowym struktura sterowania może zakończyć metodę, a nie wywołanie.Ważnym rozróżnieniem w tym przypadku jest to, że struktura sterowania nie jest instrukcją programowania, ale wbudowaną częścią języka komputerowego.

Rekurencja ogona istnieje w wielu językach komputerowych, w tym Java i C ++.Często te rekurencyjne połączenia można przepisać przy użyciu innych środków, takich jak pętle, podczas instrukcji pętli lub goto.Przydatność rekurencji znajduje się przy tworzeniu wielu sekwencyjnych wywołań do tej samej metody.Rekurencja jest często najczystszym i najłatwiejszym sposobem wykonywania powtarzających się zadań.

Wspólnym przykładem rekurencji ogona jest metoda obliczająca liczbę czynnikową.Proces ten jest idealny, ponieważ zaczynając od dowolnej liczby, każda liczba, zanim zostanie zniżka.Tak więc, aby znaleźć czynnik 5, właściwym procesem, aby to zrobić, byłoby pomnożenie 5*4*3*2*1.Rekurencja pojawia się z powodu struktury metody czynnikowej: jeśli czynnik wynosi 1, zwróć 1, w przeciwnym razie zwróć czynnik liczby podanej do metody minus jeden.Ta metoda jest również przydatna, ponieważ może być równoważnie zapisana przy użyciu dowolnego rodzaju rekurencji ogona, z instrukcją sterowania lub bez niego wokół ostatecznego wywołania metody.

Rekurencja ogona jest tylko jednym przykładem wielu rodzajów rekurencji.Koncepcja we wszystkich rodzajach rekurencji jest zasadniczo taka sama, że w jakiś sposób metoda sama się nazywa.Z tego typu rozróżnienie rekurencji ogona polega na tym, że wartość wywołania rekurencyjnego jest natychmiast zwracana i nic innego nie dzieje się w metodzie wywołania po tym połączeniu.