Die Datenstruktur, die implizit zur Unterstützung der Rekursion verwendet wird, ist der
Call Stack .
Während Sie beim Schreiben einer rekursiven Funktion nicht explizit * eine Stapeldatenstruktur in Ihrem Code verwenden, hängt der zugrunde liegende Mechanismus stark darauf ab. Jeder rekursive Aufruf fügt dem Anrufstapel einen neuen Bild (mit lokalen Variablen, Funktionsparametern und Rückgabedresse) hinzu. Nach Abschluss eines rekursiven Anrufs wird der Rahmen vom Stapel gestoßen und die Ausführung wird an dem Punkt fortgesetzt, an dem der Anruf getätigt wurde. Wenn die Rekursion nicht ordnungsgemäß beendet wird, kann sie zu einem Stapelüberlauffehler führen, da der Stapel eine begrenzte Größe hat.