funkcja wywołująca samą siebie jest znana jako funkcja rekurencyjna. Technika ta jest znana jako rekurencja.
Jak działa rekurencja?
void recurse(){ ... .. ... recurse(); ... .. ...}int main(){ ... .. ... recurse(); ... .. ...}
rekurencja trwa, dopóki nie zostanie spełniony jakiś warunek, aby temu zapobiec.
aby zapobiec nieskończonej rekurencji, jeśli…Instrukcja else (lub podobne podejście) może być używana tam, gdzie jedna gałąź wywołuje rekurencyjne wywołanie, a druga nie.,
przykład: suma liczb naturalnych przy użyciu rekurencji
Wyjście
Enter a positive integer:3sum = 6
początkowo sum()
jest wywoływana z funkcji main()
z liczbą przekazaną jako argument.
Załóżmy, że wartość n wewnątrzsum()
wynosi początkowo 3. Podczas następnego wywołania funkcji, 2 jest przekazywane do funkcji sum()
. Proces ten trwa aż n jest równe 0.,
Gdy n jest równe 0, warunekif
nie powiedzie się, a częśćelse
jest wykonywana zwracając sumę liczb całkowitych ostatecznie do funkcjimain()
.
zalety i wady rekurencji
Rekurencja czyni program eleganckim. Jeśli jednak wydajność jest istotna, należy użyć pętli, ponieważ rekurencja jest zwykle znacznie wolniejsza.
biorąc to pod uwagę, rekurencja jest ważnym pojęciem. Jest często używany w strukturach danych i algorytmach., Na przykład, często używa się rekurencji w takich problemach jak trawersowanie drzewa.