You are on page 1of 5

Universidad Catlica Boliviana

San Pablo

Docente: MSc. Irma Prado Villarroel


Materia: Programacin III
Informe: Applet Arboles Binarios
Fecha: 02/12/2014
Integrantes:
- Calle Mayser Vladimir
- Tern Monasterios Sergio
- Vargas Portugal Susana

Arboles Binarios
1. Definiciones:
-

Un rbol binario es un rbol con raz en el que cada nodo tiene como mximo dos
hijos.
Un rbol binario lleno es un rbol en el que cada nodo tiene cero o dos hijos.
Un rbol binario perfecto es un rbol binario lleno en el que todas
las hojas (vrtices con cero hijos) estn a la misma profundidad (distancia desde
la raz, tambin llamada altura).
A veces un rbol binario perfecto es denominado rbol binario completo. Otros
definen un rbol binario completo como un rbol binario lleno en el que todas las
hojas estn a profundidad n o n-1, para alguna n.
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.

2. Recorridos sobre rboles binarios:


2.1.

Recorridos en profundidad:
El mtodo de este recorrido es tratar de encontrar de la cabecera a la raz en
nodo de unidad binaria. Ahora pasamos a ver la implementacin de los
distintos recorridos.

2.2.

Recorrido en pre orden:


En este tipo de recorrido se realiza cierta accin (quizs simplemente imprimir
por pantalla el valor de la clave de ese nodo) sobre el nodo actual y
posteriormente se trata el subrbol izquierdo y cuando se haya concluido, el
subrbol derecho. Otra forma para entender el recorrido con este mtodo seria
seguir el orden: nodo raiz, nodo izquierda, nodo derecha.
public static String pre_orden(arbol p, String k)
{
k = p.dato + " ";
if(p.izq!=null) k = k + pre_orden(p.izq, k);
if(p.der!=null) k = k + pre_orden(p.der, k);
return k;
}

2.3.

Recorrido en postorden:
En este caso se trata primero el subrbol izquierdo, despus el derecho y por
ltimo el nodo actual. Otra forma para entender el recorrido con este metodo
seria seguir el orden: nodo izquierda, nodo derecha, nodo raiz.

public static String post_orden(arbol p, String k)


{
if(p.izq!=null) k = post_orden(p.izq, k);
if(p.der!=null) k = post_orden(p.der, k);
k = k + p.dato +" ";
return k;
}
2.4.

Recorrido en orden:
En este caso se trata primero el subrbol izquierdo, despus el nodo actual y
por ltimo el subrbol derecho. En un ABB este recorrido dara los valores de
clave ordenados de menor a mayor. Otra forma para entender el recorrido con
este metodo seria seguir el orden: nodo izquierda,nodo raiz,nodo derecha.
public static String in_orden(arbol p, String k)
{
if(p.izq!=null) k = in_orden(p.izq, k);
k = k + p.dato + " ";
if(p.der!=null) k = in_orden(p.der, k);
return k;
}

3. 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
(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
preoden transversal. Sin embargo, desperdicia mucho espacio en memoria.

A continuacin les presentamos capturas de nuestro proyecto en applet que esta cargado
en nuestra pgina:

You might also like