Si bien no explícitamente * usa * una estructura de datos de pila en su código al escribir una función recursiva, el mecanismo subyacente depende en gran medida de él. Cada llamada recursiva agrega un nuevo cuadro (que contiene variables locales, parámetros de función y dirección de retorno) en la pila de llamadas. Cuando se completa una llamada recursiva, su marco se sale de la pila y la ejecución se reanuda en el punto en que se realizó la llamada. Si la recursión no se termina correctamente, puede conducir a un error de desbordamiento de pila porque la pila tiene un tamaño limitado.