• Cualquier problema que pueda resolverse en forma recursiva, se puede resolver también en forma iterativa.
• Por lo general se prefi ere un método recursivo en vez de uno iterativo cuando el primero refl eja el problema con más 

naturalidad, y produce un programa más fácil de comprender y de depurar.

• A menudo se puede implementar un método recursivo con pocas líneas de código, pero el método iterativo corres-

pondiente podría requerir una gran cantidad de código. Otra razón por la que es más conveniente elegir una solu-
ción recursiva es que una solución iterativa podría no ser aparente.

Sección 15.8 Fractales

• Un fractal es una fi gura geométrica que se genera a partir de un patrón que se repite en forma recursiva, un número 

infi nito de veces.

• Los fractales tienen una propiedad de auto-similitud: las subpartes son copias de tamaño reducido de toda la pieza.

Sección 15.9 “Vuelta atrás” recursiva (backtracking)

• Al uso de la recursividad para regresar a un punto de decisión anterior se le conoce como “vuelta atrás” recursiva. 

Si un conjunto de llamadas recursivas no produce como resultado una solución al problema, el programa retrocede 
hasta el punto de decisión anterior y toma una decisión distinta, lo cual a menudo produce otro conjunto de llama-
das recursivas.

Terminología

caso base
converger en un caso base
Copo de nieve de Koch, fractal
Curva de Koch, fractal
desbordamiento de pila
evaluación recursiva
factorial
Fibonacci, serie de
Fractal
fractal auto-similar
fractal estrictamente auto-similar
llamada recursiva
marco de pila
media dorada
método recursivo
nivel de un fractal
nivel del fractal
Ocho Reinas, problema
orden del fractal
palíndromo

paso recursivo
pila
pila de ejecución del programa
pila de llamadas a métodos
profundidad del fractal
proporción dorada
prueba de terminación
recorrido del laberinto, problema
recursividad exhaustiva
recursividad indirecta
recursividad infi nita
registro de activación
sobrecarga de ejecución
teoría de complejidad
torres de Hanoi, problema
último en entrar, primero en salir (UEPS), 

estructuras de datos

“vuelta atrás”
“vuelta atrás” recursiva

Ejercicios de autoevaluación

15.1 

Conteste con 

verdadero o falso a cada una de las siguientes proposiciones; en caso de ser falso, explique por qué.

 

a) Un método que se llama a sí mismo en forma indirecta no es un ejemplo de recursividad.

 

b) La recursividad puede ser efi ciente en la computación, debido a la reducción en el uso del espacio en 

memoria.

 

c) Cuando se llama a un método recursivo para resolver un problema, en realidad es capaz de resolver sólo el 

(los) caso(s) más simple(s), o caso(s) base.

 

d) Para que la recursividad sea factible, el paso recursivo en una solución recursiva debe asemejarse al problema 

original, pero debe ser una versión ligeramente más grande del mismo.

15.2

Para terminar la recursividad, se requiere un(a) _____________.

 a) 

paso 

recursivo

 b) 

instrucción 

break

 

c) tipo de valor de retorno 

void

 d) 

caso 

base

Ejercicios de autoevaluación 

679

15_MAQ_CAP_15_DEITEL.indd679

4/19/081:29:07AM