Você está na página 1de 32

Introducci

on Estructura general Operaciones en un


arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura de Datos

Clase 12: Arboles


Carlos Contreras Bolton
Universidad Andr
es Bello
Facultad de Ingeniera

29 de Abril de 2014

Carlos Contreras Bolton Estructura de Datos

1/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Contenido
1 Introducci
on
2 Estructura general
3 Operaciones en un
arbol
4 Recorrido de los
arboles
5 Implementaciones de
arboles
6 Tipos de
arboles

Carlos Contreras Bolton Estructura de Datos

2/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Introduccion

Es una estructura jerarquica aplicada sobre una coleccion


de elementos u objetos llamados nodos.
Uno de los cuales es conocido como raz.
Es una Estructura de datos no lineal.
Los nodos estan enlazados por medio de ramas.
Ejemplos:
Indices.
Clasificacion.

Arboles
geneal
ogicos.
Organigramas.

Carlos Contreras Bolton Estructura de Datos

3/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Ejemplos

Carlos Contreras Bolton Estructura de Datos

4/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Aplicaciones

Analizar circuitos electricos.


Representar la estructura de formulas matematicas.
Organizar la informacion.
Representar la estructura sintactica de un programa en
los compiladores.

Carlos Contreras Bolton Estructura de Datos

5/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Generalidades

La relacion entre dos nodos consecutivos se denomina


padre/hijo.
Existe una relacion jerarquica partiendo desde la raz, en
sentido vertical y descendente, que definen niveles.
Desde la raz se puede acceder a cualquiera de los nodos
moviendose a traves de las ramas, y estableciendo un
camino.

Carlos Contreras Bolton Estructura de Datos

6/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un nodo
Al nodo base, que es u
nico, se le llamara raz. Por convencion se
representa en la parte superior del arbol.
Un nodo i es antecesor de un nodo j si forman parte del mismo
camino y el nodo i se encuentra en un nivel anterior que j. Al nodo
j se le llama descendente de i.
Se denomina grado de un nodo al n
umero de hijos de un nodo.

Carlos Contreras Bolton Estructura de Datos

7/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un nodo

Se dice que un nodo es hoja cuando el nodo es de grado


cero.
La profundidad de un nodo es el largo del unico camino
desde la raz al nodo.

Carlos Contreras Bolton Estructura de Datos

8/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un arbol

Subarbol Es un arbol cuya raz es un nodo, distinto de la


raz, del arbol principal.
Altura De un nodo: es el mayor camino desde el nodo
hasta una hoja. De un
arbol: el nivel del nodo de
mayor nivel.

Carlos Contreras Bolton Estructura de Datos

9/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un arbol

Camino Si n1 , n2 , , nk es una sucesion de nodos de un


arbol, tal que ni es padre de ni+1 para 1 i < k,
entonces la sucesion describe un camino.
Anchura Tambien llamado amplitud, corresponde a la
poblacion de un nivel.
Grado Es el mayor de los grados entre todos los nodos.

Carlos Contreras Bolton Estructura de Datos

10/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un arbol

Completo Se dice que un arbol es completo cuando todos


sus nodos, sin considerar las hojas, tienen el
mismo grado y todos los niveles estan poblados
completamente.
Longitud del camino Es el numero de pasos entre el nodo
origen y el nodo destino.
Peso Es el numero de nodos contenidos en el arbol.

Carlos Contreras Bolton Estructura de Datos

11/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Estructura general
Caractersticas de un arbol

Balanceado La diferencia entre la altura de la rama izquierda


y la rama derecha es -1, 0 o 1.
Semicompleto El arbol esta balanceado y en un mismo nivel
las inserciones se realizan de izquierda a derecha.

Carlos Contreras Bolton Estructura de Datos

12/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Operaciones en un arbol
Operaciones que se pueden efectuar con arboles:
Padre(n, A): Devuelve el padre del nodo n en el arbol A. Si no tiene
padre (si es raz) debe devolver NULL.
Hijo izq(n, A): Devuelve el hijo mas a la izquierda del nodo n en el
arbol A, y devuelve un NULL si n es una hoja.
Hermano Der(n, A): Devuelve el hermano a la derecha del nodo n
en el arbol A.
Etiqueta(n, A): Devuelve la etiqueta del nodo n en el arbol A.
Crea i(v , A1 , A2 , . . ., Ak ): crea un nuevo nodo r con etiqueta v y le
asigna I hijos que son las races de los arboles A1, A2 , . . . , Ai en ese
orden desde la izquierda. Se devuelve el arbol con raz r .
Raiz(A): Devuelve el nodo raz del arbol A, o NULL si A es el arbol
nulo.
Anula(A): convierte a A en el arbol nulo.
Carlos Contreras Bolton Estructura de Datos

13/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Recorrido de los arboles


Orden de recorrido

Sea n0 el nodo raz de un arbol A, y sean A1 , A2 , . . . , Ak los k


subarboles que cuelgan de n0 .

Carlos Contreras Bolton Estructura de Datos

14/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Recorrido de los arboles


Preorden

El recorrido en preorden de
A esta formado por la raz
n0 , seguida de los nodos de
A1 en orden previo, los
nodos de A2 en orden
previo, y as sucesivamente
hasta los nodos de Ak en
orden previo.

Carlos Contreras Bolton Estructura de Datos

15/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Recorrido de los arboles


Inorden

El recorrido en inorden de
A esta formado por los
nodos de A1 en orden
simetrico, seguidos de n0 , y
de los nodos de A2 , . . . , Ak
todos ellos en orden
simetrico.

Carlos Contreras Bolton Estructura de Datos

16/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Recorrido de los arboles


Postorden

El recorrido en postorden
de A esta formado por los
nodos de A1 en orden
posterior, los nodos de A2
en orden posterior, y
as sucesivamente hasta los
nodos de Ak en orden
posterior, para finalizar con
n0 .

Carlos Contreras Bolton Estructura de Datos

17/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Recorrido de los arboles


Orden de recorrido

preorden: 34, 4, 50, 22, 76, 31, 90, 2, 15


inorden: 50, 4, 22, 34, 76, 2, 90, 31, 15
postorden: 50, 22, 4, 76, 2, 90, 15, 31, 34
Carlos Contreras Bolton Estructura de Datos

18/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles

Puntero al padre.
Listas de hijos.
Hijo mas izquierdo y hermano derecho.

Carlos Contreras Bolton Estructura de Datos

19/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante Arreglos

Sea L un arreglo, en
la cual cada entrada
L[i] constituya un
apuntador o un
cursor al padre del
nodo I .
La raz de A se
distingue como un
apuntador a nulo.

Carlos Contreras Bolton Estructura de Datos

20/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante Arreglos

Algunos Problemas:
Un camino ascendente se puede recorrer en un tiempo
proporcional al numero de nodos del camino.
No facilita las operaciones que requieren informacion de
los hijos.
No especifica el orden de los hijos de un nodo.

Carlos Contreras Bolton Estructura de Datos

21/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante listas de hijos

Carlos Contreras Bolton Estructura de Datos

22/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante listas de hijos

Hay un arreglo de celdas de encabezamiento indizadas por


nodos. Cada encabezamiento apunta a una lista enlazada
de elementos que son nodos del arbol.
No es adecuada para crear arboles grandes a partir de
arboles mas chicos por medio de las operaciones CREA i,
debido a que poseen un arreglo propio de encabezamiento.

Carlos Contreras Bolton Estructura de Datos

23/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante listas de hijos

Declaracion de un Arbol
a Lista de Arreglos:
s t r u c t Arbol {
Tipo Dato e t i q u e t a ;
i n t L [N ] ;
}
s t r u c t Arbol A[N ] ;

Acceso a la Lista de hijos del nodo i.


A[ i ] . L [ j ]

Carlos Contreras Bolton Estructura de Datos

24/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante listas de hijos

Declaracion de un Arbol
a Lista enlazadas:
s t r u c t Arbol {
Tipo Dato e t i q u e t a ;
c a b e c e r a t L ;
}
s t r u c t Arbol A[N ] ;

Acceso a la Lista de hijos del nodo i.


A [ i ]>L

Carlos Contreras Bolton Estructura de Datos

25/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Mediante listas de hijos

Declaracion de un Arbol
mediante Listas enlazadas:
s t r u c t Arbol {
Tipo Dato e t i q u e t a
c a b e c e r a t L ;
s t r u c t Arbol sgte ;
}
s t r u c t Arbol Raiz ;

Acceso a la Lista de hijos del nodo i.


A r b o l [ i ]>L

Carlos Contreras Bolton Estructura de Datos

26/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Hijo mas izquierdo y hermano derecho

Otra alternativa para implementar es mediante nodos y


punteros:
Uno destinado al hijo mas a la izquierda.
El otro al hermano derecho

Carlos Contreras Bolton Estructura de Datos

27/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Implementaciones de arboles
Hijo mas izquierdo y hermano derecho

Carlos Contreras Bolton Estructura de Datos

28/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Tipos de arboles

Binario El grado maximo de cada nodo no puede ser


superior a 2.
Balanceados A medida que se insertan datos los nodos
cambian sus posicion para lograr un arbol
completo.
Binario Ordenado El hijo izquierdo es menor que la raz, y el
hijo derecho es mayor que la raz. A su vez, los
subarboles izquierdo y derecho son arboles
binarios ordenados.

Carlos Contreras Bolton Estructura de Datos

29/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Tipos de arboles
AVL Adelson, Velskii y Landis. Para todo nodo, se
tiene que la altura de sus subarboles difiere a lo
mas en 1.
Heap El montculo binario es un AB semicompleto,
donde la raz es el menor de los elementos y sus
hijos son mayores que el, o la raz es el mayor de
los elementos y sus hijos son menores que el.
2-3 Los nodos son de grado 2 o 3. Los nodos deben
tener 2 hijos si tiene 1 elemento o 3 hijos si tiene
2 elementos. Las hojas tienen la misma longitud
respecto de la raz.

Carlos Contreras Bolton Estructura de Datos

30/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Resumen de conceptos
Ejemplo arbol
Obtener:
1 Longitud del camino < a, b, e >.
2 Longitud del camino < a >.
3 Indique el camino de < c > a < h >.
4 Profundidad de < a >.
5 Profundidad de < h >.
6 Altura del
arbol.
7 Altura de < f >.
8 Grado de < b >.
9 Grado del
arbol.
10 Peso del
arbol.

Carlos Contreras Bolton Estructura de Datos

31/32

Introducci
on Estructura general Operaciones en un
arbol Recorrido de los
arboles Implementaciones de
arboles Tipos de
arbol

Resumen de conceptos
Ejemplo arbol
Obtener:
1 Longitud del camino < a, b, e >. 2
2 Longitud del camino < a >. 0
3 Indique el camino de < c > a < h >. c, f, h
4 Profundidad de < a >. 0
5 Profundidad de < h >. 3
6 Altura del
arbol. 3
7 Altura de < f >. 1
8 Grado de < b >. 2
9 Grado del
arbol. 2
10 Peso del
arbol. 8

Carlos Contreras Bolton Estructura de Datos

32/32

Você também pode gostar