Anda di halaman 1dari 5

12/10/2010

REPRESENTACIÓN DE ÁRBOLES BINARIOS

 La organización de los datos en una estructura en


forma jerárquica o de niveles, es otra opción de
representar estructuras de datos comúnmente
d
denominados
i d árboles.
á b l

ÁRBOLES  Su principal característica es que tienen una


relación de uno a muchos (1:n) entre sus
Estructuras de Datos elementos.

REPRESENTACIÓN DE ÁRBOLES TERMINOLOGÍA


Es el primer elemento de un árbol binario, (solo se
Nodo Raíz
tiene un nodo raíz)
Nodo Padre Es el nodo que al menos tiene un hijo (der y/o izq)
Estructura para representar: Nodo que se encuentra al lado derecho de otro
Hijo Derecho
 Un árbol genealógico nodo
Un organigrama
g g Nodo que se encuentra al lado izquierdo de otro
 Hijo Izquierdo
nodo
 Los directorios de un S.O.
Es el nodo que no tiene hijos. Un nodo de un árbol
Nodo Hoja
binario puede tener uno, dos o ningún hijo.
Nodo Hermano Nodo que tiene un mismo padre.
Nodo padre de un nodo padre (El nodo raíz es un
Ancestros
ancestro de todos los nodos del árbol).
Es el número máximo de nodos de una rama del
Profundidad o
árbol. Equivale a 1 mas que el mayor número de
Altura
niveles de T.

TERMINOLOGÍA EJEMPLO
1

Nodo El hijo de un nodo. Todos los nodos son


Descendiente descendiente del raíz. 3
2
Todos los descendientes por la izquierda de un
Subárbol
nodo forman un subárbol izquierdo cuya raíz es el
izquierdo
hijo izquierdo de ese nodo.
4 5 6 7
Subárbol
Idem subárbol izquierdo
derecho
Distancia desde la raíz. La raíz esta en el nivel
Nivel de un 8 9 10 11
cero, cantidad de nodos por los que se tiene que 12
nodo
pasar para llegar a un nodo.
13
14

1
12/10/2010

 Nodo raíz = 1
 El hijo derecho de 1 es 3 TDA ABB (ÁRBOL BINARIO DE BÚSQUEDA)
 El hijo derecho de 6 es 10.
 El hijo izquierdo de 7 es 11.  Es una estructura que guarda información no repetida para
 El hijo izquierdo de 1 es 2. administrar eficientemente la búsqueda de los propios
datos.
 El nodo padre de 6 y 7 es 3.
 El nodo padre de 9 es 5
 Pertenece al conjunto de estructuras jerárquicas,
 Los nodos hojas son 13, 9 10, 11, 14. restringiendo la relación de uno a dos como máximo.
 Los nodos hermanos son 4 y 5,, 6 y 7 11 y 12
 Los ancestros de 10 son 6, 3 y 1  Orden: para cada elemento del ABB, los elementos
 Los descendientes de 7 son 11, 12 y 14 menores estarán a su izquierda y los mayores a su derecha.
 El subárbol derecho de 1 es el que tiene raíz 3
 El subárbol izquierdo de 1 es el que tiene raíz 2  El valor de N es mayor que cualquier valor del subárbol
 El nodo de nivel 0 es 1 izquierdo de N y es menor que cualquier valor del subárbol
 Los nodos del nivel 1 son 2 y 3 derecho de N, lo cual garantiza que el recorrido in orden de
T dará una lista ordenada de los elementos de T.
 Los nodos del nivel 2 son 4, 5, 6 y 7
 Los nodos del nivel 3 son 8, 9, 10, 11 y 12
Tarea: crear la especificación lógica del TDA ABB con crear,
 Los nodos de nivel 4 son 13 y 14 buscar, insertar y borrar nodo

EJEMPLO
 Cada nodo N de T
38 excede a cualquier
número de su subárbol ABB
izquierda y es menor al
14 56 subárbol derecho.
 Si se reemplaza el 23
por 35 (es árbol binario
8 23 45 82 de búsqueda) si el 23 lo
reemplazamos por 40 ya
no es un ABB, porque
18 48 38 no es mayor que 40 No ABB
de su subárbol
izquierdo.

REPRESENTACIÓN DE ÁRBOLES
EJEMPLOS BINARIOS EN MEMORIA

Si T es un árbol, existen varias formas de


A E
representarlo en memoria:
A E

 Representación enlazada de T
B
B F
F
(li
(listas enlazadas)
l d )
 Representación secuencial de T
C D G H
C D G H (arreglos unidimensionales)
a) b) c) d)

a y c son equivalentes
a y b son distintos
c y d son similares.

2
12/10/2010

REPRESENTACIÓN DE ÁRBOLES REPRESENTACIÓN DE ÁRBOLES


BINARIOS EN MEMORIA BINARIOS EN MEMORIA

1. Representación usando listas enlazada 2. Representación secuencial


 Suponiendo que T es un árbol binario que es
completo o casi completo. Por lo tanto T se
representa en un arreglo lineal llamado ÁRBOL.

o La raíz R de T se guarda en ÁRBOL [1]


o ÁRBOL[1]=NULO, esta vacío
o Si un nodo N está en ÁRBOL [K], entonces:
o Su HI está en ÁRBOL[2*K]
o Su HD está en ÁRBOL[2*K+1]

 En términos generales la representación


secuencial de un árbol de profundidad d requerirá
un arreglo de aproximadamente 2d+2 elementos.

REPRESENTACIÓN DE ÁRBOLES
BINARIOS EN MEMORIA

 Un árbol de 11 nodos  n=11


D=[log2n+1] 
D=3.32(log 11)+1=4.45  4 (casi completo) ,
5 (completo)
R
Requiere
i un arreglo
l de
d 2D+2=26=64 elementos.
l  Los hijos
L hij izquierdos
i i d y derechos
d h ded un nodo
d K,
K son respectivamente
ti t
2*k y (2*k)+1.

Nodo 5  H.I. 2*5 = 10


H.D (2*5)+1=11
 Y el padre de K es el nodo [k/2]  [5/2]=2 (padre)
 Los hijos del nodo 9 son 18 y 19 y su padre es el [9/2] = 4
 La profundidad del árbol esta dado por Dn= [log2 n+1]

ÁRBOLES BINARIOS EXTENDIDOS ÁRBOLES BINARIOS EXTENDIDOS


(ÁRBOLES – 2) (ÁRBOLES – 2)
Un árbol binario T es un árbol –2, si cada nodo N
tiene 0 a 2 hijos. Los nodos internos tienen dos Los nodos del árbol T
hijos (O), los nodos externos son lo que tienen 0 original son ahora los
hijos( ) nodos interiores del
extendido y los nuevos
Considere un árbol binario T como en la figura y nodos son los nodos
T puede ser convertido a un árbol-2, externos del árbol
reemplazando a cada subárbol vacío por un nuevo extendido.
nodo como en b.

3
12/10/2010

ÁRBOLES BINARIOS EXTENDIDOS


(ÁRBOLES – 2) EJEMPLO ÁRBOL BINARIO DE BÚSQUEDA
La idea consiste en comparar la información del nodo con la del
/
valor buscado, si no son iguales, el apuntador de búsqueda se ira
ala izquierda o derecha, dependiendo si es mayor o menor,
E=(a-b)/((c*d)+e) iniciando por la raíz.
- +

Algoritmo:
g
* e
a b  comparar DATO con el nodo raíz N del árbol
 si el DATO<N se moverá al subárbol izquierdo de N
 variables de E  nodos externos c d
 si el DATO>N se moverá al subárbol derecho de N
 operadores de E  nodos internos  repetir el paso a) hasta encontrar una de las siguientes
condiciones
 se encuentra un nodo N tal que DATO=n
 Se completa la búsqueda
 Se encuentra un subárbol vacío, (fuera del árbol el apuntador)

ÁRBOL BINARIO TIPOS DE RECORRIDOS


 Considere el siguiente ABB suponga que DATO =23 Preorden
 visitar el nodo raíz R
 Se compara DATO=23 con la raíz 38 del árbol T
 recorrer el subárbol izquierdo de R en preorden
 Como 23<38, se procede con el hijo izquierdo de 38  14
 recorrer en preorden el subárbol derecho del nodo raíz.
 Se compara DATO=23 con 14
 Como 23>14 se va con el hijo
j derecho del 14  23 In orden
 Se compara DATO=23 con 23 38  recorrer el subárbol izquierdo de R en inorden

 Se ha encontrado DATO= N  procesar (visitar) el nodo raíz R


 recorrer en inorden el subárbol derecho del nodo raíz.
14 56

Postorden
45 82
 recorrer el subárbol izquierdo de R en postorden
8 23
 recorrer en postorden el subárbol derecho del nodo raíz.
 procesar (visitar) el nodo raíz R

18 70

TIPOS DE RECORRIDOS [EJEMPLO] EJERCICIOS


 pre-orden =</ ?&$+ 1. Considerar el sig. Árbol
 in-orden /<&?=+$
 post-orden /&?<=+$
 pre-orden-c =$+<?&/
 in-orden-c $+=?&</
 post-orden-c +$&?/<=
 nivel x nivel =<$/?+&

2. Sea la siguiente expresión algebraica construir el


árbol y sus 7 recorridos
[a+(b-c)]*[(d-e)/(f+g-h)]

4
12/10/2010

OPERACIONES IMPLEMENTACIÓN

 Búsqueda de un nodo
 Inserción
se c ó dee un nodo
o o
 Eliminación de un nodo

 Balanceo de un árbol