Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1/1
Recursividad
Los procesos recursivos son aquellos ciclos autorreferentes, vale
decir, una definición (matemática, funciones, programas) depende
parcialmente de sı́ misma.
2/1
Recursividad
Una definición recursiva se compone de dos elementos básicos:
1 Un caso base que detiene el ciclo.
Factorial
f (0) = 1
f (n) = n × f (n − 1).
Factorial en C
int f a c t o r i a l ( i n t n ){
i f ( n<0)
r e t u r n −1; // V a l o r de E r r o r
e l i f ( n==0) // c a s o b a s e , s i n c o n d i c i o n −> l o o p i n f i n i t o
return 1;
r e t u r n n ∗ f a c t o r i a l ( n −1); // l l a m a d o a un e l e m e n t o p a r c i a l d e l c a s o
}
1 Sequencia de Fibonacci.
2 Polinomio de Hermite.
3 Triángulo de Pascal.
4 Fractales.
Curva de Peano.
Curva de Koch.
Curva de Hilbert.
5 Árboles.
4/1
Árboles
5/1
Árboles: Aplicaciones
6/1
Árboles: Conceptos
Un árbol está formado por un conjunto finito de elementos,
llamados nodos los cuales son enlazados entre sı́ según jerarquı́a
padre-hijo.
Primer nodo → raı́z del árbol.
Relación padre-hijo → jerarquı́a.
Nodos → varios sucesores.
Nodos → único antecesor.
7/1
Árboles: Conceptos
Los componentes de los árboles son nombrados y clasificados según sus
caracterı́sticas.
Primer nodo → raı́z del árbol.
Nodo con sucesores → padre.
Sucesor de un nodo → hijo.
Nodos con padre e hijos → nodo intermedio.
Nodo sin hijos → hoja (nodo terminal).
8/1
Árboles: Conceptos
Además en un árbol, se identifica la siguiente información:
Camino: Secuencia entre dos nodos siguiendo relación jerárquica
padre hijo.
camino(4, 47) = {4, 12, 61, 47}
Largo Camino: Número de enlaces (nodos-1) entre dos nodos en
relación jerárquica.
largo(4, 47) = 3
Rama: Camino de la raı́z a una hoja.
rama1 = camino(4, 2)
9/1
Árboles: Conceptos
Grado de Nodo: Cantidad de hijos.
grado(47) = 0
10/1
Árboles: Conceptos
Altura: Profundidad Máxima de los nodos o largo del camino más
grande.
altura(A) = 3
nivel(4) = 3
11/1
Árboles: Recursividad
Los árboles son estructuras de datos recursiva, debido a que cada hijo de
un nodo es la raı́z de un árbol de menor altura (sub-árbol).
Aplicaciones:
Gramática de lenguajes, i.e. matemáticas.
Árboles de Decisión.
Árbol Binario de Búsqueda.
13/1
Árboles binarios: Implementación
14/1
Árboles binarios: Implementación
Árbol Binario en C
t y p e d e f s t r u c t nodo{
i n t dato ;
s t r u c t nodo ∗ h i j o i z q ;
s t r u c t nodo ∗ h i j o d e r ;
} nodo t ;
i n t main ( i n t a r g c , c h a r ∗∗ a r g v ){
n o d o t ∗ r a i z ; // á r b o l v a c ı́ o
return 0;
}
15/1
Árboles binarios: Implementación
Detalles:
El puntero de control se encuentra siempre en la raı́z.
Los nodos cuyos hijos apunten a NULL, son hojas.
¿Cómo podemos recorrer un árbol (binario)?. - En seguida.
¿Cómo agregar, buscar, eliminar elementos de un árbol
binario? - ABB: Próxima clase.
16/1
Árboles binarios: Recorridos
17/1
Árboles binarios: Recorrido en Anchura
Tiene como criterio visitar todos los nodos de un nivel antes de pasar al
siguiente.
20/1
Árboles binarios: Rec. Prof. Pre-orden
Pre-orden en C
v o i d p r i n t p r e o r d e n ( n o d e t ∗ r o o t ){
p r i n t f ( ” Dato : %d\n” , r o o t−>d a t o ) ;
i f ( r o o t−>h i j o i z q != NULL)
p r i n t p r e o r d e n ( r o o t−>h i j o i z q ) ;
i f ( r o o t−>h i j o d e r != NULL)
p r i n t p r e o r d e n ( r o o t−>h i j o d e r ) ;
}
21/1
Árboles binarios: Rec. Prof. In-orden
22/1
Árboles binarios: Rec. Prof. In-orden
In-orden en C
v o i d p r i n t i n o r d e n ( n o d e t ∗ r o o t ){
i f ( r o o t−>h i j o i z q != NULL)
p r i n t i n o r d e n ( r o o t−>h i j o i z q ) ;
i f ( r o o t−>h i j o d e r != NULL)
p r i n t i n o r d e n ( r o o t−>h i j o d e r ) ;
}
23/1
Árboles binarios: Rec. Prof. Post-orden
24/1
Árboles binarios: Rec. Prof. Post-orden
Post-orden en C
v o i d p r i n t p o s t o r d e n ( n o d e t ∗ r o o t ){
i f ( r o o t−>h i j o i z q != NULL)
p r i n t p o s t o r d e n ( r o o t−>h i j o i z q ) ;
i f ( r o o t−>h i j o d e r != NULL)
p r i n t p o s t o r d e n ( r o o t−>h i j o d e r ) ;
25/1