Vous êtes sur la page 1sur 6

Repblica Bolivariana de Venezuela

Ministerio del Poder Popular para la Defensa


Universidad Nacional Experimental Politcnica
De la Fuerza Armada Nacional Bolivariana
UNEFA
Ncleo: Falcn Extensin: Punto Fijo
Asignatura: Lenguaje de programacin I

RBOLES

Integrantes:
Ricardo Irausquin
Edgar Lugo
Jaimary Gamboa
Carlos Naveda

CI.: 23586913
CI.: 23676866
CI.: 24306915
CI: 23586970
Ing. Sistemas C 4to Semestre
Punto Fijo, Enero de 2014

RBOLES

Profesora:
Lic. Reina Zavala

1. DEFINICION
Un rbol es un conjunto finito de nodos. Es una estructura jerrquica
aplicable sobre una coleccin de elementos u objetos llamados nodos; uno de
los cuales es conocido como raz.
Los rboles representan las estructuras no lineales y dinmicas. No
lineales, puesto que a cada elemento del rbol pueden seguirle varios
elementos. Dinmicas, puesto que la estructura rbol puede cambiar durante la
ejecucin del programa.
2. TIPOS DE ARBOLES
Existen varios tipos de rboles:

rboles binarios

Conjunto finito de nodos el cual puede ser vaco o tener un par de rboles
llamados izquierdo y derecho. Cuando un nodo no tiene hijos se le llama hoja o
nodo terminal. La Altura de un rbol es el nmero de niveles que tiene. Un rbol
es completo cuando contiene el nmero mximo de nodos para su altura.

rboles Ternarios

Un rbol ternario es una estructura similar a un rbol, tiene una raz y cada
nodo tiene mximo tres hijos.

rboles libres

Es una coleccin de vrtices y lados que satisfacen ciertos requerimientos.


Un vrtice es un objeto que tiene un nombre y puede contener otra informacin
asociada. Un lado es una conexin entre dos vrtices.

rboles con raz

En este rbol un nodo es designado como la raz del rbol, en computacin


se usa a este concepto se le conoce simplemente como rbol.
3. USOS DE LOS ARBOLES

Las tablas de enrutamiento que usan los routers para calcular la


ruta ms corta a la hora de transmitir informacin de un punto a otro. En
simulaciones 3D, principalmente videojuegos, para dibujar de forma
eficiente los escenarios. En aplicaciones de inteligencia artificial para la
bsqueda de caminos. Por ejemplo, programas que contienen
informacin sobre una ciudad y calculan cmo llegar de una direccin a
otra, usan algoritmos de bsqueda que pueden utilizar rboles binarios.
Los compiladores crean rboles de sintaxis, que pueden ser rboles
binarios. En algoritmos de compresin, como el utilizado en el formato
jpeg.

4. RBOL BINARIO

Definicin
Un rbol binario es un conjunto finito de nodos que consta de un nodo

raz que tiene dos subrboles binarios denominados subrbol izquierdo y


subrbol derecho. Esta es una definicin recursiva, es decir, cada subrbol es
un rbol binario.

Declaracin
Se definir el rbol con una clave de tipo entero (puede ser cualquier
otro tipo de datos) y dos hijos: izquierdo (izq) y derecho (der). Para representar
los enlaces con los hijos se utilizan punteros. El rbol vaco se representar
con un puntero nulo.
Un rbol binario puede declararse de la siguiente manera:
typede
fstructtarbol
{
int clave;
structtarbol *izq,*der;
} tarbol;

Insercin

Cuando se llega a un rbol vaco se crea el nodo en el puntero que se pasa


como parmetro por referencia, de esta manera los nuevos enlaces mantienen
la coherencia. Si el elemento a insertar ya existe entonces no se hace nada.
Voidinsertar(tarbol **a, intelem){
if (*a==NULL) {
*a=(arbol*)malloc(sizeof(arbol));
(*a)->clave = elem;
(*a)->izq=(*a)->der=NULL;
else if (((*a)->clave<elem)insertar(&(*a)->der, elem));
else if (((*a)->clave >elem) insertar(&(*a)->izq, elem));
}

Recorridos
Se consideran dos tipos de recorrido: recorrido en profundidad y

recorrido en anchura o a nivel. Puesto que los rboles no son secuenciales


como las listas, hay que buscar estrategias alternativas para visitar todos los
nodos.
Recorridos en profundidad
* Recorrido en preorden: consiste en visitar el nodo actual (visitar puede ser
simplemente mostrar la clave del nodo por pantalla), y despus visitar el
subrbol izquierdo y una vez visitado, visitar el subrbol derecho. Es un
proceso recursivo por naturaleza. S se hace el recorrido en preorden del rbol
de la figura 1 las visitas seran en el orden siguiente: a,b,d,c,e,f.

voidpreorden(tarbol *a)
{
if (a!=NULL) {
visitar(a);
preorden(a->izq);
preorden(a->der);
}
}

* Recorrido en inorden u orden central: se visita el subrbol izquierdo, el


nodo actual, y despus se visita el subrbol derecho. En el ejemplo de la figura
1 las visitas seran en este orden: b,d,a,e,c,f.

voidinorden(tarbol *a)
{

if (a!=NULL) {
inorden(a->izq);
visitar(a);
inorden(a->der);
}
}

* Recorrido en postorden: se visitan primero el subrbol izquierdo, despus el


subrbol derecho, y por ltimo el nodo actual. En el ejemplo de la figura 1 el
recorrido quedara as: d,b,e,f,c,a.
voidpostorden(arbol *a)
{
if (a!=NULL) {
postorden(a->izq);
postorden(a->der);
visitar(a);
}
}

La ventaja del recorrido en postorden es que permite borrar el rbol de


forma consistente. Es decir, si visitar se traduce por borrar el nodo actual, al
ejecutar este recorrido se borrar el rbol o subrbol que se pasa como
parmetro. La razn para hacer esto es que no se debe borrar un nodo y
despus sus subrboles, porque al borrarlo se pueden perder los enlaces, y
aunque no se perdieran se rompe con la regla de manipular una estructura de
datos inexistente. Una alternativa es utilizar una variable auxiliar, pero es
innecesario aplicando este recorrido.

Bibliografa

Ing. Alma Leticia Palacios Guerrero. Arboles.doc. Disponible en:


http://fcqi.tij.uabc.mx/usuarios/palacios/Unidad%20IV%20Arboles.pdf
Nomenclatura de los arboles.
http://exa.unne.edu.ar/depar/areas/informatica/dad/DAD/Presentaciones/Arbole
s_Generales_y_Binarios_y_Estructuras_de_Indices.pdf
Ing. M.Sc. Fulbia Torres. Estructuras de Datos:
http://www.el.bqto.unexpo.edu.ve/ftorres/Prof/ARBOLES.pdf

Vous aimerez peut-être aussi