Recursividad, Arboles y Grafos Estructura de Datos
Recursividad, Arboles y Grafos Estructura de Datos
Recursividad, Arboles y Grafos Estructura de Datos
Unidad III
3.1 Definicin
Un mtodo es recursivo cuando directa o indirectamente se llama a si mismo. Un
mtodo presenta recursividad directa cuando se llama a si mismo dentro de su
definicin. La recursividad indirecta consiste en que un mtodo llame a otro que a
su vez contenga una referencia directa o indirecta al primero.
Al trabajar con recursividad se deben tener en cuenta los siguientes puntos:
1 Caso base: es una instancia que se puede resolver sin recursin. Cualquier
llamada recursiva debe progresar hacia un caso base.
2 Progreso: cualquier llamada recursiva debe progresar hacia un caso base.
3 Puede creerlo: suponga siempre que las llamadas recursivas funcionan
correctamente.
4 Regla de inters compuesto: nunca duplique trabajo resolviendo la misma
instancia de un problema en llamadas recursivas separadas.
En el diseo de un algoritmo recursivo es preciso tener en cuenta que:
Valor
1
2
3
4
5
Para crear un mtodo que calcule factoriales en forma recursiva, debe hacer que
se llame a s mismo, como se muestra a continuacin:
Estructuras no lineales
Unidad III
3.1 Arboles.
En ciencias de la informtica, un rbol es una estructura de datos ampliamente
usada que imita la forma de un rbol (un conjunto de nodos conectados). Un nodo
es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos
hijos conectados a l. Se dice que un nodo es padre de un nodo si existe un
enlace desde
hasta (en ese caso, tambin decimos que es hijo de ). Slo
puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no
tiene hijos se conoce como hoja. Los dems nodos (tienen padre y uno o varios
hijos) se les conoce como rama.
3.1.1 Concepto de rbol.
o
o
o
o
o
rboles Multicaminos.
B
B+
B*
R
2-4
Un rbol binario es equilibrado es aquel que todos sus nodos cumplen con la
propiedad:
altura (subrbol izquierdo) altura (subrbol derecho) <= 1
Creacin de un rbol
Eliminacin de un nodo.
3.1.4 Aplicaciones.
Los rboles tienen aplicaciones en diferentes mbitos como por ejemplo: Diseo
de compiladores, sistemas expertos, sistemas evolutivos, sistemas conscientes,
manejo de directorios por ejemplo Mi PC dentro de Windows. Representacin de
un rbol genealgico. ndices de bases de datos y mucha ms
Sin lugar tiene muchas aplicaciones, aunque su implementacin no es tan usada
como las base de datos tradicionales, pero actualmente existen modelos mediante
los cuales un rbol puede ser representado en una lista dinmica simplemente o
doblemente ligada, este modelo se presentar posteriormente.
3.1.5 Arboles balanceados (AVL).
Un rbol binario se encuentra balanceado si la diferencia en la altura de los dos
subrboles de cualquier nodo en el rbol es cero o uno.
1)
Se extraen todos los elementos del rbol a una lista de manera ordenada
10
15
17
20
35
No.
Paso
Llamado
ndices
Insertar
Llamados
pendiente)
(Lista,0,Lista.size()1)
(0+7)/2=3
10
(raz)
(Lista,4,Lista.size()-1)
(Lista,0,2)
(0+2)/2=1
(Lista,2,2)
(Lista,0,0)
(0+0)/2=0
Ya no se
condicin
cumple
la
(Lista,2,2)
(2+2)/2=2
Ya no se
condicin
cumple
la
(Lista,4,Lista.size()1)
(4+7)/2=5
17
(Lista,6,7)
(Lista,4,4)
(4+4)/2=4
15
Ya
cumple
la
no
se
recursivos
condicin
7
(Lista,6,7)
(6+7)/2=6
20
(Lista,7,7)
(Lista,7,7)
(7+7)/2=7
35
Ya no se
condicin
4.2 Grafos.
cumple
la
CAMINO.Es una secuencia de vrtices V1, V2, V3, ... , Vn, tal que cada uno
de estos V1->V2, V2->V3, V1->V3.
CAMINO SIMPLE. Es cuando todos sus vrtices, excepto tal vez el primero
y el ltimo son distintos.
Insertar arista
Esta operacin es tambin muy sencilla. Cuando se inserte una nueva arista en el
grafo, habr que aadir un nuevo nodo a la lista de adyacencia (lista que
almacena los nodos a los que un vrtice puede acceder mediante una arista) del
nodo origen, as si se aade la arista (A,C), se deber incluir en la lista de
adyacencia de A el vrtice C como nuevo destino.
Eliminar vrtice
Esta operacin es inversa a la insercin de vrtice. En este caso el procedimiento
a realizar es la eliminacin de la tabla de vrtices del vrtice en s. A continuacin
habr que eliminar las aristas que tuviesen al vrtice borrado como origen o
destino.
Eliminar arista
Mediante esta operacin se borra un arco del grafo. Para llevar a cabo esta accin
es necesario eliminar de la lista de adyacencia del nodo origen el nodo
correspondiente al nodo destino.
Otras operaciones
Las operaciones adicionales que puede incluir un grafo son muy variadas. Adems
de las clsicas de bsqueda de un elemento o recorrido del grafo, tambin
podemos encontrarnos con ejecucin de algoritmos que busquen caminos ms
cortos entre dos vrtices, o recorridos del grafo que ejecuten alguna operacin
sobre todos los vrtices visitados, por citar algunas operaciones de las ms
usuales.