You are on page 1of 18

Universidad Mariano Glvez

Ingeniera en Sistemas de Informacin

5to. Semestre

Seccin A

Programacin 3

Ing. Axel Aguilar

Arboles Binarios

Alvin Steve Padilla Meza 3090-10-11973

Gerson Estuardo Flores Cosenza 3090-15-13793

Mazatenango 20 de Mayo del 2017.


ndice
Tema Pagina
Introduccin 3
Justificacin 4
Estructuracin. 5-16
Conclusin. 17
Bibliografa... 18
Introduccin
En el siguiente trabajo se presentara una investigacin correspondiente al
tema denominado: Arboles Binarios en la cual se conocer la definicin de
rboles Binarios, como estn formados, algunas de sus Propiedades, Usos
Comunes y tambin que tipos de Arboles Binarios existen cada uno de estos
con su respectiva definicin, tambin vamos a aprender los recorridos de los
rboles Binarios, etc.
Justificacin
Descripcin del Tema a Investigar:
Investigar el Tema de rboles Binarios.
Objetivo General:
Se busca conocer en general todo lo Respectivo a Arboles Binarios.
Objetivo Especfico:
Atraves de esta investigacin Definiremos que son los Arboles Binarios, etc.
Metas
Definir los conceptos de rboles Binarios.
Conocer cmo se encuentran conformados los Arboles Binarios.
Conocer los tipos de rboles Binarios que existen y su Recorrido.
rbol
Antes de entrar al tema Arboles Binarios vamos a conocer lo que es un rbol. Y vamos
a conocer que un rbol es un tipo abstracto de datos (TAD) ampliamente usado que
imita la estructura jerrquica de un rbol, con un valor en la raz y subrboles con un
nodo padre, representado como un conjunto de nodos enlazados.
Una estructura de datos de rbol se puede definir de forma recursiva (localmente)
como una coleccin de nodos (a partir de un nodo raz), donde cada nodo es una
estructura de datos con un valor, junto con una lista de referencias a los nodos
(los hijos), con la condicin de que ninguna referencia est duplicada ni que ningn
nodo apunte a la raz. Alternativamente, un rbol se puede definir de manera
abstracta en su conjunto como un rbol ordenado, con un valor asignado a cada nodo.
Ambas perspectivas son tiles: mientras que un rbol puede ser analizado
matemticamente, realmente es representado como una estructura de datos en la que
se trabaja con cada nodo por separado (en lugar de como una lista de nodos y una lista
de adyacencia entre nodos, como un grafo). Mirando a un rbol como conjunto, se
puede hablar del nodo padre de un nodo dado, pero en general se habla de una
estructura de datos de un nodo dado que slo contiene la lista de sus hijos sin
referencia a su padre (si lo hay).

Concepto

Un rbol es una estructura de datos homognea, dinmica y no lineal, en la que cada


nodo (elemento) puede tener varios nodos posteriores, pero slo puede tener un nodo
anterior.

Un rbol es dinmico porque su estructura puede cambiar durante la ejecucin de un


programa. Y no lineal, ya que cada nodo del rbol puede contener varios nodos que
dependan de l. La estructura de un rbol se forma de nodos y arcos (lnea que une
dos nodos), el primero de los nodos del rbol recibe el nombre de raz, del cual se
desprenden los nodos interiores y de stos los nodos llamados hoja, que son los nodos
que se encuentran al final del rbol; todos ellos en conjunto forman un rbol.
No es un rbol: En el ciclo BCEDB, B tiene ms de un padre.

No es un rbol: Hay dos partes sin conectar (AB y CDE), luego existe ms de
una raz.

Cada lista lineal es trivialmente un rbol

Adems de comprender el concepto y la estructura de un rbol, debemos tomar en


cuenta otros conceptos bsicos que pueden ser tiles en el momento de construir o
programar un rbol, estos conceptos los clasificaremos en tres rubros:

No es un rbol: En el ciclo AA, A es la raz, pero tambin tiene un padre.

Relacin con otros nodos,


Posicin dentro del rbol y
Tamao del rbol

En relacin con otros nodos:


Hijo: Un nodo conectado directamente con otro cuando se aleja de la raz sea que
este depende de otro.
Padre: La nocin inversa de hijo, tambin se puede expresar como el nodo del cual
se derivan otros nodos.
Hermanos: es el nodo que se encuentra al lado del nodo hijo y que dependen del
mismo nodo padre.

En cuanto a la posicin dentro del rbol:


Raz: es el primero de los nodos y el nico que no contiene un padre.
Hoja: es el nodo que se encuentra al final del rbol.
Interior: es un nodo que no es raz ni hijo y se encuentre ellos.
En relacin a su tamao:
Orden: es el nmero potencial de nodos hijos que tiene un nodo padre (orden
2).
Grado: es el nmero mximo de hijos que tiene un nodo (grado 2).
Nivel: es el nmero de arcos que deben ser recorridos para llegar a un
determinado nodo ms uno (nivel 3).
Altura de un nodo: La altura de un nodo es el nmero de aristas en el camino
ms largo entre ese nodo y una hoja.
Altura de un rbol: La altura de un rbol es la altura de su nodo raz.
Peso: es el nmero de nodos del rbol sin contar la raz (peso 6).
Camino: es la serie de nodos que tienes que pasar para llegar hasta un nodo.
Longitud de camino: es el nmero de arcos ms uno que debe cruzar para
llegar a un nodo.
Rama: es el camino que se forma desde el nodo raz hasta un nodo hoja.

Otros conceptos:
Descendiente: Un nodo accesible por descenso repetido de padre a hijo.
Ascendiente: Un nodo accesible por ascenso repetido de hijo a padre.
Brazo: La conexin entre un nodo y otro.
Profundidad: La profundidad de un nodo es el nmero de aristas desde la raz
del rbol hasta un nodo.
Bosque: Un bosque es un conjunto de rboles n 0 disjuntos.

Arboles Binarios
Un rbol binario es una estructura de datos en la cual cada nodo puede tener
un hijo izquierdo y un hijo derecho. No pueden tener ms de dos hijos (de ah
el nombre "binario"). Si algn hijo tiene como referencia a null, es decir que no
almacena ningn dato, entonces este es llamado un nodo externo. En el caso
contrario el hijo es llamado un nodo interno.
Tambin podemos deducir que los rboles binarios son estructuras de datos muy
similares a las listas doblemente enlazadas, en el sentido que tienen dos punteros que
apuntan a otros elementos, pero no tienen una estructura lgica de tipo lineal o
secuencial como aquellas, sino ramificada. Tienen aspecto de rbol, de ah su nombre.

Un rbol binario es una estructura de datos no lineal en la que cada nodo puede
apuntar a uno o mximo a dos nodos. Tambin se suele dar una definicin recursiva que
indica que es una estructura compuesta por un dato y dos rboles. Esto son
definiciones simples. Este tipo de rbol se caracteriza porque tienen un vrtice
principal y de l se desprende dos ramas. La rama izquierda y la rama derecha a las
que tambin se les conocen como subrboles. Una representacin grfica de la
estructura general de un rbol binario se puede visualizar en la imagen1 que presente
a continuacin.

Imagen 1. Estructura general de un rbol binario

La rama izquierda y la derecha, tambin son dos rboles binarios. El Vrtice principal
se denomina raz y cada una de las ramas se puede denominar como subrbol izquierdo
y subrbol derecho.

Imagen 2. Representacin grfica de un rbol binario

Teniendo en cuenta la grfica del rbol binario de la


figura podemos identificar algunas generalidades
y partes del rbol.

Nodo: Un rbol binario es un conjunto de elementos cada uno de los cuales se


denomina nodo. Un rbol Binario puede tener cero nodos y este caso se dice que est
vaco. Puede tener un slo nodo, y en este caso solamente existe la raz del rbol o
puede tener un nmero finito de nodos. Cada nodo puede estar ramificado por la
izquierda o por la derecha o puede no tener ninguna ramificacin.
Con relacin al tipo de nodos que hacen parte de los rboles, se identifican algunos
nodos:

Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del rbol. En la
grfica de la imagen 2, se tiene, D y M son hijos de A.
Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo A es
padre de D y D.
Los rboles con los que trabajar tienen otra caracterstica importante: cada nodo
slo puede ser apuntado por otro nodo, es decir, cada nodo slo tendr un padre. Esto
hace que estos rboles estn fuertemente jerarquizados, y es lo que en realidad les
da la apariencia de rboles.

En cuanto a la posicin dentro del rbol se tiene:


Nodo raz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al
rbol. En el ejemplo anterior, es el nodo A.
Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: L, K, I, E.
Existen otros conceptos que definen las caractersticas del rbol, en relacin a su
tamao:

Orden: es el nmero potencial de hijos que puede tener cada elemento de rbol. De
este modo, se dice que un rbol en el que cada nodo puede apuntar a otros dos es de
orden dos, si puede apuntar a tres ser de orden tres y as sucesivamente.
Grado: el nmero de hijos que tiene el elemento con ms hijos dentro del rbol. En el
rbol del ejemplo en la imagen 2, el grado es dos, ya que tanto A como D y M tienen
dos hijos, y no existen elementos con ms de dos hijos.
Nivel: se define para cada elemento del rbol como la distancia a la raz, medida en
nodos. El nivel de la raz siempre ser cero y el de sus hijos uno. As sucesivamente. En
el ejemplo de la imagen 2, el nodo D tiene nivel 1, el nodo L tiene nivel 2.
Altura: la altura de un rbol se define como el nivel del nodo de mayor nivel. Como
cada nodo de un rbol puede considerarse a su vez como la raz de un rbol, tambin
se puede hablar de altura de ramas.

Concepto segn la Teora de Grafos

Un rbol binario sencillo de tamao 9, 3 niveles (Nivel 0


hasta Nivel 3) y altura 4 (altura = mximo nivel + 1), con
un nodo raz cuyo valor es 2.

Al momento de definir que es un rbol Binario segn la teora de grafos, vamos a


conocer que: Un rbol binario es un grafo conexo, acclico y no dirigido tal que el
grado de cada vrtice no es mayor a 3. De esta forma solo existe un camino entre un
par de nodos. Un rbol binario con enraizado es como un grafo que tiene uno de sus
vrtices, llamado raz, de grado no mayor a 2. Con la raz escogida, cada vrtice
tendr un nico padre, y nunca ms de dos hijos. Si rehusamos el requerimiento de la
conectividad, permitiendo mltiples componentes conectados en el grafo, llamaremos a
esta ltima estructura un bosque'.

Usos Comunes:

Usos comunes de los rboles binarios son los rboles binarios de bsqueda,
los montculos binarios y Codificacin de Huffman.

Propiedades de los rboles binarios


Propiedad 1:
Si se define i = nmero de nodos internos, e = nmero de nodos externos, entonces se
tiene que:

e = i+1

Demostracin: induccin sobre i (ejercicio).

Propiedad 2:

Sea n = nmero de nodos internos. Se define:

In = suma del largo de los caminos desde la raz a cada nodo interno (largo de
caminos internos).
En = suma del largo de los caminos desde la raz a cada nodo externo (largo de
caminos externos).
Se tiene que:
En = In+2n

Demostracin: induccin sobre n (ejercicio).

Propiedad 3:

Cuntos rboles binarios distintos se pueden construir con n nodos internos?

Bn?

Por ejemplo: b4 = b0*b3 + b1*b2 + b2*b1 + b3*b0 = 5 + 2 + 2 + 5 =


14.

Este tipo de ecuaciones se puede resolver y la solucin es la


siguiente:

La serie de nmeros que genera bn se conoce como nmeros de Catalan.


Asintticamente:

Tipos de Arboles Binarios

Un rbol binario es un rbol en el que ningn nodo puede tener ms de dos subrboles. En
un rbol binario cada nodo puede tener cero, uno o dos hijos (subrboles). Se conoce el
nodo de la izquierda como hijo izquierdo y el nodo de la derecha como hijo derecho.
Existen tipos de rboles binarios que suelen usarse para fines especficos, como:

rbol binario de bsqueda


rbol de Fibonacci

rbol binario de bsqueda


Un rbol binario de bsqueda tambin llamado BST (acrnimo del ingls Binary Search
Tree) es un tipo particular de rbol binario que presenta una estructura de datos en
forma de rbol usada en informtica

Definicin

Sea A un rbol binario de raz R e hijos izquierdo y derecho (posiblemente nulos) HI Y


Hp, respectivamente. Decimos que A es un rbol binario de bsqueda (ABB) si y solo si
se satisfacen las dos condiciones al mismo tiempo:

HI es vaco (R es mayor que todo elemento de HI HI es un ABB).


HD es vaco (R es mayor que todo elemento de HD HD es un ABB).

Donde es la conjuncin lgica y, y es la disyuncin lgica o.

Un rbol binario de bsqueda de tamao 9 y


profundidad 3, con raz 8 y hojas 1, 4, 7 y
13

Para una fcil comprensin queda resumido en que es un rbol binario que cumple que el
subrbol izquierdo de cualquier nodo (si no est vaco) contiene valores menores que el que
contiene dicho nodo, y el subrbol derecho (si no est vaco) contiene valores mayores. Para
estas definiciones se considera que hay una relacin de orden establecida entre los elementos
de los nodos. Que cierta relacin est definida, o no, depende de cada lenguaje de
programacin. De aqu se deduce que puede haber distintos rboles binarios de bsqueda para
un mismo conjunto de elementos.
La altura h en el peor de los casos es siempre el mismo tamao que el nmero de elementos
disponibles. Y en el mejor de los casos viene dada por la expresin.

El inters de los rboles binarios de bsqueda (ABB) radica en que su recorrido en in


orden proporciona los elementos ordenados de forma ascendente y en que la bsqueda de algn
elemento suele ser muy eficiente.
Dependiendo de las necesidades del usuario que trate con una estructura de este tipo, se
podr permitir la igualdad estricta en alguno, en ninguno o en ambos de los subrboles que
penden de la raz. Permitir el uso de la igualdad provoca la aparicin de valores dobles y hace la
bsqueda ms compleja.

Un rbol binario de bsqueda no deja de ser un caso particular de rbol binario, as usando la
siguiente especificacin de rbol binario en maude:

Fmod ARBOL-BINARIO {X: TRIV} is


Sorts ArbolBinNV {X} ArbolBin {X}.
Subsort ArbolBinNV {X} < ArbolBin {X}.
*** Generadores
Op crear: -> ArbolBin {X} [ctor].
Op arbolBin: X$Elt ArbolBin {X} ArbolBin {X} -> ArbolBinNV {X} [ctor].
Endfm

Podemos hacer la siguiente definicin para un rbol binario de bsqueda (tambin en maude):

Fmod ARBOL-BINARIO-BUSQUEDA {X:: ORDEN} is


protecting ARBOL-BINARIO {VOrden}{X} .
Sorts ABB{X} ABBNV{X}.
Subsort ABBNV{X} < ABB{X}.
Subsort ABB{X} < ArbolBin {VOrden}{X}.
Subsort ABBNV{X} < ArbolBinNV {VOrden}{X}.
*** Generadores
Op crear: -> ArbolBin {X} [ctor].
Op arbolBin: X$Elt ArbolBin {X} ArbolBin {X} -> ArbolBinNV {X} [ctor].
Endfm

Con la siguiente teora de orden:

Fth ORDEN is
Protecting BOOL.
Sort Elt.
*** Operations
op _<_ : Elt Elt -> Bool .
End fth

Para que un rbol binario pertenezca al tipo rbol binario de bsqueda debe cumplir la
condicin de ordenacin siguiente que ira junto al mdulo ARBOL-BINARIO-BUSQUEDA:

Var R: X$Elt.
Vars INV DNV: ABBNV{X}.
Vars I D: ABB{X}.
Mb crear: ABB {X}.
Mb arbolBin(R, crear, crear): ABBNV {X}.
Cmb arbolBin(R, INV, crear): ABBNV {X} if R > Max (INV).
Cmb arbolBin(R, crear, DNV): ABBNV {X} if R < min (DNV).
Cmb arbolBin(R, INV, DNV): ABBNV{X} if (R > max (INV)) and (R < min (DNV)) .
Ops min max: ABBNV{X} -> X$Elt.
Eq min (arbolBin(R, crear, D)) = R.
Eq min (arbolBin(R, INV, D)) = min (INV).
Eq Max (arbolBin(R, I, crear)) = R.
Eq Max (arbolBin(R, I, DNV)) = Max (DNV).

rbol Fibonacci
Se llama rbol de Fibonacci a una variante de rbol binario con la propiedad que el orden
de un nodo se calcula como la sucesin de Fibonacci.
El rbol de Fibonacci se define de la siguiente manera:
El rbol nulo (no contiene ningn nodo) es de orden 0.
El rbol que consta de un nico nodo es de orden 1.
Para n > 1, el rbol de Fibonacci de orden n consta de un nodo raz con el rbol de
Fibonacci de orden n-1 como hijo izquierdo y el rbol de Fibonacci de orden n-2
como hijo derecho.
Dado que este tipo de rbol es un caso particular de un rbol AVL, ya que el factor de
equilibrio de todo nodo es -1, un rbol de Fibonacci es balanceado con altura O (log n).
Formas de Recorrer un rbol binario
Los rboles binarios, son estructuras de datos no lineales, son considerados como
estructuras jerrquicas y como tal su forma de recorrerlos difiere sustancialmente
en comparacin con las listas enlazadas que son estructuras de datos de tipo lineal. En
ese orden de ideas, el recorrido de un rbol binario se lleva a cabo en tres sentidos:
Preorden, Inorden y Postorden. A continuacin explicaremos cada uno:
Recorrido en Preorden:
Recorrer un rbol en preorden consiste en primer lugar, examinar el dato del nodo
raz, posteriormente se recorrer el subrbol izquierdo en preorden y finalmente se
recorre el subrbol derecho en preorden. Esto significa que para cada subrbol se
debe conservar el recorrido en preorden, primero la raz, luego la parte izquierda y
posteriormente la parte derecha.
Imagen. Representacin grfica del rbol binario y su recorrido en preorden

Veamos cmo se realiza el recorrido paso a paso segn la grfica del rbol de la
imagen:
El recorrido inicia con el subrbol izquierdo, el primer nodo a visitar es la raz que es
el nodo 10, luego se visita el subrbol izquierdo con el nodo 5, posteriormente el 3,
luego el nodo 1, sigue con el nodo 4, pasamos al nodo 7 y luego el 9.
Continuamos con el recorrido del subrbol derecho en preorden, con la visita
del nodo 15, luego el 14, se contina con el 17, se visita el 16 y se finaliza con la
visita del nodo 20.
El resultado completo del recorrido en preorden para el rbol de la imagen es: 10 5
3 1 4 7 9 15 14 17 -16 20, Tal como se muestra en la imagen.
Recorrido en Inorden
Recorrer un rbol en Inorden consiste en primer lugar en recorrer el subrbol
izquierdo en Inorden, luego se examina el dato del nodo raz, y finalmente se recorre
el subrbol derecho en Inorden. Esto significa que para cada subrbol se debe
conservar el recorrido en Inorden, es decir, primero se visita la parte izquierda, luego
la raz y posteriormente la parte derecha.
Imagen. Representacin grfica del rbol binario y su recorrido en Inorden
Veamos cmo se realiza el recorrido paso a paso segn la grfica del rbol de la
imagen:
El recorrido inicia con el subrbol izquierdo, el primer nodo a visitar es el 3 luego se
visita el 5 y posteriormente el 7, con esto se garantiza que el recorrido del subrbol
izquierdo se hizo en Inorden.
Finalizado el recorrido del subrbol izquierdo se visita el nodo de la raz, que para
este caso es el nmero 10.
Solo queda recorrer el subrbol derecho en Inorden, es decir se visita el 11 luego el
12 y se finaliza con la visita del nodo 15
El resultado completo del recorrido en Inorden para el rbol de la imagen es:3 5
7 10 11 12 15, Tal como se muestra en la imagen.
Recorrido en Postorden:
Recorrer un rbol en Postorden consiste en primer lugar en recorrer el subrbol
izquierdo en Postorden, luego se recorre el subrbol derecho en Postorden y
finalmente se visita el nodo raz. Esto significa que para cada subrbol se debe
conservar el recorrido en Postorden, es decir, primero se visita la parte izquierda,
luego la parte derecha y por ltimo la raz.
Imagen. Representacin grfica del rbol binario y su recorrido en postorden

Veamos cmo se realiza el recorrido paso a paso segn la grfica del rbol de la
imagen.
El recorrido inicia con el subrbol izquierdo, el primer nodo a visitar es el 3 luego se
visita el 7 y posteriormente el 5 que es la raz, con esto se garantiza que el recorrido
del subrbol izquierdo se hizo en Postorden. Finalizado el recorrido del subrbol
izquierdo se inicia la visita al subrbol derecho en Postorden, es decir, se visita el 11
luego el 15 y se finaliza con la visita del nodo 12 que sera la raz de este subrbol.
Solo queda recorrer la raz del rbol que para este caso es el nmero 10.
El resultado completo del recorrido en Postorden para el rbol de la imagen es:
3 7 5 11 15 12 10 Tal como se muestra en la imagen.
Mtodos para almacenar rboles Binarios
Los rboles binarios pueden ser construidos a partir de lenguajes de programacin de
varias formas. En un lenguaje con registros y referencias, los rboles binarios son
construidos tpicamente con una estructura de nodos y punteros en la cual se
almacenan datos, cada uno de estos nodos tiene una referencia o puntero a un nodo
izquierdo y a un nodo derecho denominados hijos. En ocasiones, tambin contiene un
puntero a un nico nodo. Si un nodo tiene menos de dos hijos, algunos de los punteros
de los hijos pueden ser definidos como nulos para indicar que no dispone de dicho
nodo. En la figura adjunta se puede observar la estructura de dicha implementacin.

Los rboles binarios tambin pueden ser almacenados como una estructura de datos
implcita en vectores, y si el rbol es un rbol binario completo, este mtodo no
desaprovecha el espacio en memoria. Tomaremos como notacin la siguiente: si un nodo
tiene un ndice i, sus hijos se encuentran en ndices 2i + 1 y 2i + 2, mientras que sus
padres (si los tiene) se encuentra en el ndice {\displaystyle \left\lfloor {\frac {i-
1}{2}}\right\rfloor }(partiendo de que la raz tenga ndice cero). Este mtodo tiene
como ventajas el tener almacenados los datos de forma ms compacta y por tener una
forma ms rpida y eficiente de localizar los datos en particular durante un preorden
transversal. Sin embargo, desperdicia mucho espacio en memoria.
Conclusin

En el siguiente trabajo se present una investigacin sobre el tema


denominado: Arboles Binarios en la cual se aprendimos la definicin de
rboles Binarios son estructuras de datos muy similares a las listas doblemente
enlazadas, en el sentido que tienen dos punteros que apuntan a otros elementos, pero
no tienen una estructura lgica de tipo lineal o secuencial como aquellas, sino
ramificada. Tienen aspecto de rbol, de ah su nombre, conocimos como se
encuentran formados los Arboles Binarios, algunas de sus Propiedades, Usos
Comunes como: son los rboles binarios de bsqueda, los montculos
binarios y Codificacin de Huffman, conocimos los tipos de Arboles Binarios que
existen y estos son: Arboles Binarios de Bsqueda (ABB) y Arboles Fibonacci
de estos con su respectiva definicin, los tipos de recorridos de un rbol
Binario, etc.
Bibliografa
https://es.wikipedia.org/wiki/%C3%81rbol_binario
https://es.wikipedia.org/wiki/%C3%81rbol_de_Fibonacci

http://www.utm.mx/~rruiz/cursos/ED/material/ABB.pdf

http://www.monografias.com/trabajos92/arboles-binario/arboles-binario.shtml

http://www6.uniovi.es/usr/cesar/Uned/EDA/Apuntes/TAD_apUM_04.pdf

You might also like