Recursin
EDA I
Recursividad
Recursividad
EDA I
EDA I
Ejemplo: Sumatorio
k=1
k = N +
k=1
N-1
Recursividad
EDA I
EDA I
Induccin
Definiciones recursivas
Caso bsico
0 Nat
n Nat s(n) Nat
Hiptesis de induccin
Recursividad
Recursividad
EDA I
EDA I
Ms definiciones recursivas
Torres de Hanoi
resto
Induccin estructural:
P(<>) y P(L) P(t L ) L ListaDeT P(L)
Caso bsico
Recursividad
Hiptesis de induccin
7
Recursividad
EDA I
EDA I
Bsqueda dicotmica
Recursividad
Recursividad
EDA I
Implementacin recursiva de
ListaTAD<T>
Recorrido en un laberinto
public boolean traverse (row, column) {
if (row y column es la salida)
return true
else
para cada casilla (f, c) accesible desde (row, column)
if ((f, c) es vlida)
Marcar (f, c)
salida = traverse (f, c)
if (not salida) Desmarcar (f , c)
else return true
finpara
return false
}
Recursividad
Recursividad
11
10
EDA I
12
EDA I
EDA I
ListaRecTAD<T>
Lista vaca
Recursividad
13
Recursividad
14
EDA I
EDA I
first y last
size y contains
Recursividad
15
Recursividad
16
EDA I
EDA I
removeFirst y removeLast
remove y addToFront
Recursividad
17
Recursividad
EDA I
EDA I
iterator y displayList
import java.util.*;
public class IteradorListaRec<T> implements Iterator<T> {
private NodoListaRec<T> current; // la posicin actual
//Inicializa el iterador utilizando los elementos especificados
public IteradorListaRec (NodoListaRec<T> collection){
current = collection;
}
18
19
Recursividad
20
EDA I
Lectura
De [Lewis, Chase 2006]
Captulo 10
Recursividad
21