You are on page 1of 39

Unidad 5.- Estructuras no lineales.

5.1 Concepto de rbol.


5.1.1 Clasificacin de rboles.
5.2 Operaciones Bsicas sobre rboles binarios.
5.2.1 Creacin.
5.2.2 Insercin.
5.2.3 Eliminacin.
5.2.4 Recorridos sistemticos.
5.2.5 Balanceo.

Definicin

Un rbol es una coleccin de elementos, llamados


nodos, uno de los cuales se distingue con el nombre
de raz, los cuales mantienen una relacin
(parentezco) que define una estructura jerrquica
entre ellos.

Concepto de rbol
Estructura Jerrquica no lineal, dinmica.
Relaciones padre-hijo entre nodos.
Ejemplos: sistema de archivos, estructura de un
libro, diagrama organizacional, rboles genealgicos,
etc.

Concepto de rbol
Un rbol se caracteriza por estar formado por un
conjunto finito de nodos, conectados por una serie de
aristas, tales que verifican que:
hay un nico nodo especial llamado raz.
los nodos restantes se dividen en rboles mas
pequeos llamados subrboles.
cada nodo, excepto la raz, tiene un nico nodo padre.
la definicin de rbol implica tener una estructura
recursiva (por la divisin en subrboles).
la representacin de los rboles se realiza con
notaciones tpicas de los rboles genealgicos.
hay un nico camino desde la raz hasta cada nodo.

Terminologa bsica

Raz: nico nodo sin padre. Ej.: nodo A


Nodo interno: tiene al menos un hijo. Ej.: nodos B, F,
C
Nodo hoja (externo): nodo sin hijos. Ej.: nodos E, I, J,
K, G, H, D
Descendiente directo: hijo.
Ej.: B es descendiente directo de A
Descendiente: hijo, nieto, etc
Ej.: I es descendiente de F, B y A
Subrbol: rbol formado por
un nodo y sus descendientes.
Ej.: los nodos encerrados en
el triangulo

Terminologa bsica
Grado de un nodo: Num. de descendientes directos.
Ej.: el nodo B es grado 2.
Grado de un rbol: el grado mayor de sus nodos. Ej.: el
nodo A y F son los de mayor grado (3), por lo tanto el
rbol es grado 3.
rbol binario: rbol de grado 2,
cada nodo tiene como mucho dos
descendientes directos.
rbol multicamino: rbol de
grado mayor que 2, cada nodo
puede tener n descendientes
directos.

Terminologa bsica
Profundidad de un nodo: Num. de predecesores. Ej.:
profundidad de A es 0, profundidad de H es 2.
Altura del rbol: es igual a la profundidad de su nodo
mas profundo + 1. Ej.: la profundidad de I, J y K que son
los nodos mas profundos es 3 por lo tanto la altura de
rbol es 3 + 1 = 4.

Terminologa bsica
Camino: existe un camino del nodo X al nodo Y, si
existe una sucesin de nodos que permita llegar desde X
hasta Y, su longitud es el nmero de aristas que lo
conforman.

camino(A,K)= {A, B, F, K}
longitud 3
camino(C,K)= {} no hay camino

Recorrido Preorden
Se visita primero la raz, luego el subrbol izquierdo y
por ultimo el subrbol derecho, esto de manera recursiva
para cada subrbol partiendo de la raz.

public static void preorden(NodoArbol R)


{
if (R!=null)
{
System.out.println(R.Descri);
preorden(R.izq);
preorden(R.der);
}
}

Recorrido Inorden
Se visita primero el subrbol izquierdo, luego la raz y
por ultimo el subrbol derecho, esto de manera recursiva
para cada subrbol partiendo de la raz.
public static void inorden(NodoArbol R)
{
if (R!=null)
{
inorden(R.izq);
System.out.print(R.Descri + ", ");
inorden(R.der);
}
}

Recorrido Postorden
Se visita primero el subrbol izquierdo luego el
subrbol derecho y por ultimo la raz, esto de manera
recursiva para cada subrbol partiendo de la raz.

public static void postorden(NodoArbol R)


{
if (R!=null)
{
postorden(R.izq);
postorden(R.der);
System.out.print(R.Descri + ", ");
}
}

Ejemplo: expresiones aritmticas


nodos internos: operadores.
nodos hoja: operandos.
2(a 1) + 3b

Ejemplo:

Implementacin
basada en enlaces

rboles Binarios de Bsqueda


Un rbol binario de bsqueda es un rbol binario en
el que para cada nodo n,
todas las claves de los nodos del subrbol
izquierdo son menores que la clave de n (o
igual).
y todas las del subrbol derecho mayores
(o igual)

Ejemplo:

Ejemplo:

En algunos casos se exige que el rbol sea completo,


es decir que todo nodo interno tenga sus dos
descendientes.

Operaciones:
Bsqueda.
Insercin.
Eliminacin

Bsqueda

Bsqueda

Insercin

Insercin

Ejemplo de Insercin

Ejemplo de Insercin

Eliminacin

Algoritmo para borrar un nodo de un rbol binario de bsqueda.


Para borrar un nodo con informacin X se presentan los siguientes casos.
1.- Que el nodo no exista: no se realiza ninguna accin.
2.- El nodo a eliminar tiene 0 o 1 hijo: El padre del nodo a eliminar (abuelo)
toma como hijo al nodo nieto.
3.-El nodo a eliminar tiene 2 hijos: El nodo con la informacin X no se borra
fsicamente, se realiza una sustitucin de informacin, (solo datos) con una
de las siguientes acciones.
a) La informacin mayor del subrbol izquierdo.
b) La informacin menor del subrbol derecho.
c) Despus de la sustitucin el valor que sustituyo al nodo X se
manda a eliminar partiendo del subrbol donde se encuentra.

Eliminacin

Eliminacin

rbol binario: operaciones del TAD

rboles Equilibrados

rboles Equilibrados

rboles Equilibrados

rboles Equilibrados

rboles Equilibrados

rboles Equilibrados

You might also like