Professional Documents
Culture Documents
SEMANA 8
rboles binarios
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No est
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposicin del pblico ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 8
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 8
NDICE
OBJETIVO ESPECFICO............................................................................................................................... 4
INTRODUCCIN ...................................................................................................................................... 4
1. CONCEPTO DE RBOL BINARIO ................................................................................................... 4
1.1. ESTRUCTURA DE UN NODO EN UN RBOL BINARIO........................................................... 5
1.2. REPRESENTACIN DE RBOLES BINARIOS .......................................................................... 6
1.3. RBOLES BINARIOS DE BSQUEDA ..................................................................................... 6
2. OPERACIONES CON RBOLES BINARIOS DE BSQUEDA ............................................................ 7
2.1. BSQUEDA .......................................................................................................................... 7
2.2. INSERTAR ............................................................................................................................. 8
2.3. ELIMINAR........................................................................................................................... 11
2.4. RECORRIDO ....................................................................................................................... 12
3. APLICACIONES DE RBOLES BINARIOS...................................................................................... 14
3.1. RBOL AVL......................................................................................................................... 14
COMENTARIO FINAL .............................................................................................................................. 15
REFERENCIAS ..................................................................................................................................... 16
3
ESTE DOCUMENTO CONTIENE LA SEMANA 8
RBOLES BINARIOS
OBJETIVO ESPECFICO
Analizar la utilizacin y las operaciones asociadas a la estructura de datos rboles binarios.
INTRODUCCIN
Existen varios tipos de rboles, esta semana se estudiarn los rboles de grado 2, es decir, aquellos
cuyos nodos pueden tener como mximo dos descendientes.
Se estudiarn las representaciones de los rboles binarios y los rboles binarios de bsqueda as
como las operaciones y situaciones crticas que se pueden presentar al trabajar con los rboles
binarios de bsqueda.
Fuente: https://goo.gl/OdzbHg
4
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Por su parte, Ricardo Ruiz (s. f.) define un rbol binario como:
Un conjunto finito de elementos, el cual est vaco o dividido en tres subconjuntos separados:
rbol binario
Fuente: https://goo.gl/WdzQGt
5
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Como un rbol binario es una estructura de datos dinmica, no requiere establecer su tamao,
ya que su demanda de memoria crece conforme se agregan nodos, pero se libera cuando son
eliminados.
Fuente: https://goo.gl/rygwlS
6
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Formalmente se define un rbol binario de bsqueda de la siguiente manera:
Para todo nodo T del rbol se debe cumplir que todos los valores almacenados en el
De forma similar, todos los valores almacenados en el subrbol derecho de T deben ser
mayores o iguales a la informacin guardada en el nodo T. Los valores a los que se hace
A continuacin se explicarn las operaciones bsicas que se pueden realizar con el ABB:
2.1. BSQUEDA
Esta operacin consiste en recorrer el ABB (partiendo de la raz) para localizar un nodo en
particular y consultar su informacin. Debido al ordenamiento lgico de los nodos, no siempre es
necesario recorrerlo completo para localizar el nodo deseado. De hecho, el objetivo principal de
un ABB es reducir a la mitad la cantidad de operaciones para encontrar un nodo, pues al iniciar las
comparaciones en el nodo raz y detectar si el nodo buscado es mayor o menor que l (para
considerar si se analiza el subrbol del lado izquierdo o del lado derecho) automticamente se
descarta el subrbol restante (Lpez, 2012).
7
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Ejemplo:
Con lo anterior, automticamente se descartan todos los nodos ubicados en el subrbol izquierdo
(puesto que son menores). El mismo proceso se ejecuta de manera repetida con los hijos del
subrbol correspondiente, al hacerlo, cada etapa del proceso de bsqueda reduce a la mitad la
cantidad de nodos a considerar (Lpez, 2012).
sin embargo, al aplicar una bsqueda en ABB con n nodos, despus de revisar la raz, el
proceso se reduce a analizar n/2 nodos; con lo que se mejora la eficiencia del proceso
2.2. INSERTAR
Cuando se inserta un nuevo nodo a un ABB se debe crear el espacio de memoria para almacenarlo
y acomodarlo mediante los punteros correspondientes. Cuando se inserta un nodo, habr de
realizarse un recorrido para visitar cada nodo (NodoActual) y compararlo con el nuevo nodo que
se desea insertar (NuevoNodo), manteniendo el antecesor del nodo actual (padre). El recorrido se
inicia haciendo que el NodoActual sea la raz y su padre nulo. El proceso consiste en cambiar
sucesivamente de padre y aplicar en forma repetida el siguiente conjunto de pasos:
8
ESTE DOCUMENTO CONTIENE LA SEMANA 8
c) Si el NodoActual es nulo, entonces su padre apuntar al NuevoNodo. Si el NuevoNodo es
menor que el padre, entonces el NuevoNodo ser el nuevo hijo izquierdo del padre, si no,
entonces el NuevoNodo ser el nuevo hijo derecho del padre.
d) Si el NuevoNodo es menor que el NodoActual, entonces el NuevoNodo debe estar en el
subrbol izquierdo del NodoActual. El padre se convierte en el NodoActual y el NodoActual se
convierte en el hijo izquierdo del NodoActual y se regresa al paso b.
e) Si el NuevoNodo es mayor que el NodoActual, entonces el NuevoNodo debe estar en el
subrbol derecho del NodoActual. El padre se convierte en el NodoActual y el NodoActual se
convierte en el hijo derecho del NodoActual y se regresa al paso b.
La insercin en un ABB vaco sucede cuando se inserta el primer nodo en un ABB (paso a).
Ejemplo: suponga que tiene un ABB vaco (raz Insercin del primer nodo de un ABB
nulo) y se inserta el nodo con el nmero 60.
En este caso, se crea el nodo y se convierte en
el elemento apuntado por la raz. El nuevo
nodo no tiene sucesores, por lo que sus
punteros a los hijos derecho e izquierdo se
dirigen a nulo (Lpez, 2012).
INSERCIN A LA IZQUIERDA
La insercin a la izquierda sucede cuando se inserta un nodo menor que el nodo actual, el cual
provoca avanzar hacia la izquierda del ABB.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 8
INSERCIN A LA DERECHA
La insercin a la derecha sucede cuando se inserta un nodo mayor que el nodo actual, el cual
provoca avanzar hacia derecha del ABB.
INSERCIN IZQUIERDADERECHA
La insercin izquierda-derecha sucede cuando se inserta un nodo mayor que el hijo izquierdo del
nodo actual, el cual provoca avanzar hacia la derecha del subrbol izquierdo del nodo actual.
INSERCIN DERECHAIZQUIERDA
La insercin derecha-izquierda sucede cuando se inserta un nodo menor que el hijo derecho del
nodo actual, el cual provoca avanzar hacia la izquierda del subrbol derecho del nodo actual.
10
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Ejemplo: suponga que se inserta el nodo con el
nmero 70 en un ABB. En este caso, el nuevo
nodo es mayor que 60 y mayor que 90, por lo
que se crea el nodo y se convierte en el hijo
izquierdo apuntado por el nodo 90. El nuevo
nodo no tiene sucesores, por lo que sus
apuntadores a los hijos derecho e izquierdo se
dirigen a nulo (Lpez, 2012).
2.3. ELIMINAR
Esta operacin borra un nodo de un ABB. Debido a que un ABB es dinmico, cuando se elimina un
nodo se libera espacio de memoria y se ajustan los punteros correspondientes para mantener la
secuencia lgica. El proceso de eliminar un nodo de un ABB es considerablemente ms complicado
que la insercin, debido a que al borrar un nodo con hijos requiere seleccionar otro nodo que lo
reemplace y mantenga la caracterstica principal (los hijos izquierdos son menores y los hijos
derechos mayores que su padre). A continuacin se presentan algunos ejemplos (Lpez, 2012):
Sin embargo hay que considerar lo siguiente (Lancheros, Bentez y Gualtero, s. f.):
Si el nodo a borrar tiene un solo hijo, se aade como hijo de su padre, sustituyendo la posicin
ocupada por el nodo borrado.
11
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Si el nodo a borrar tiene dos hijos se siguen los siguientes pasos: se busca el mximo de la rama
izquierda o el mnimo de la rama derecha, o se sustituye el nodo a borrar por el nodo
encontrado.
2.4. RECORRIDO
Esta operacin visita todos los nodos del ABB para mostrar su contenido.
RECORRIDO PREORDEN
Un recorrido en preorden consiste en visitar sucesivamente y desplegar el dato del nodo actual,
luego su hijo izquierdo y despus su hijo derecho (Lpez, 2012).
12
ESTE DOCUMENTO CONTIENE LA SEMANA 8
Ejemplo: al recorrer el ABB en modo preorden,
la salida sera: 60, 40, 30, 20, 35, 50, 45, 90, 70,
65, 75 y 95.
RECORRIDO INORDEN
Un recorrido en inorden consiste en recorrer sucesivamente primero el hijo izquierdo del nodo
actual. Luego visitar y desplegar el dato del nodo actual y, por ltimo, recorrer sucesivamente el
hijo derecho (Lpez, 2012).
Ejemplo: de acuerdo al ABB anterior, al recorrer el rbol en modo inorden, la salida sera: 20, 30,
35, 40, 45, 50, 60, 65, 70, 75, 90 y 95.
RECORRIDO POSTORDEN
Un recorrido postorden consiste en recorrer sucesivamente primero el hijo izquierdo del nodo
actual, luego recorrer sucesivamente el hijo derecho y, por ltimo, visitar y desplegar el dato del
nodo actual (Lpez, 2012).
Ejemplo: siguiendo el ejercicio anterior, al recorrer el ABB en modo postorden, la salida sera: 20,
35, 30, 45, 50, 40, 65, 75, 70, 95, 90, 60.
13
ESTE DOCUMENTO CONTIENE LA SEMANA 8
3. APLICACIONES DE RBOLES BINARIOS
Hay varias aplicaciones de rboles binarios en la vida cotidiana, entre los que se menciona el
avance en cualquier torneo deportivo, donde solo hay un campen, dos finalistas y cuatro
semifinalistas, etc. (Lpez, 2012).
Fuente: http://goo.gl/R0LTVi
Ejemplo: en la figura de la izquierda se muestra un rbol que es AVL, mientras que en la figura de
la derecha no lo es al no cumplirse la condicin en el nodo k.
Fuente: https://goo.gl/cTEr8P
14
ESTE DOCUMENTO CONTIENE LA SEMANA 8
COMENTARIO FINAL
La bsqueda en rboles binarios es un mtodo simple, dinmico y eficiente considerado como uno
de los fundamentales en informtica. De esta manera abren las puertas al conocimiento de las
estructuras de datos, pues ayudan a manejar un gran volumen de datos y dar gran aplicabilidad en
la indexacin de archivos, organizacin de bases de datos y bsqueda de informacin. Al brindar la
utilidad de ordenar la informacin separando el total en dos posibilidades (izquierda y
derecha) se reduce el conjunto de bsqueda a la mitad en cada paso con lo cual el proceso se
hace ms rpido y expedito, adems de optimizar el almacenamiento de datos.
15
ESTE DOCUMENTO CONTIENE LA SEMANA 8
REFERENCIAS
Cair, O. y Guardati, S. (2006). Estructuras de datos. 3.a edicin. Mxico: McGraw-Hill.
Lancheros, L.; Bentez, A. y Gualtero, A. (s. f.). Eliminacin de nodos dentro de un rbol binario de
Lopez, E.; Garca, A. y Martn, A. (s. f.). rboles AVL. Universidad de Granada. Recuperado de:
https://goo.gl/cTEr8P
16
ESTE DOCUMENTO CONTIENE LA SEMANA 8
17
ESTE DOCUMENTO CONTIENE LA SEMANA 8