Anda di halaman 1dari 30

INSTITUTO TECNOLGICO SUPERIOR DE SAN ANDRS TUXTLA

ESTRUCTURAS NO LINEALES
FECHA: 30/10/2012

ESTRUCTURA DE DATOS MATERIA

SERGIO REYES RODRGUEZ ABEL CHAGALA AZAMAR ANGEL S. COBAXIN MARTINEZ JUAN JOS MARIA PREZ

INTEGRANTES

INGENIERIA EN SISTEMAS COMPUTACIONALES CARRERA

304 B GRUPO

MTI. ANGELINA MRQUEZ JIMENEZ DOCENTE

NDICE

Introduccin Concepto de rbol Clasificacin de rboles rbol binario de bsqueda Operaciones con rboles binarios Clasificacin bsica de los arboles binarios Algoritmos de recorrido en rboles binarios Aplicaciones rboles balanceados Grafos Terminologa de grafos Operaciones bsicas sobre grafos Conclusin Bibliografa

3 4 5-6 7 8 9-10 11 12-22 23 24 25 28-29 30 30

INTRODUCCIN
Una de las estructuras de datos ms importantes y prominentes que existen es el rbol. No es un rbol en el sentido botnico de la palabra, sino uno de naturaleza ms abstracta. Todos hemos visto usar tales arboles para describir conexiones familiares. Los dos tipos mas comunes de arboles familiares son el rbol de antecesores, que empieza en un individuo y va hacia atrs a travs de padres, abuelos, etc., y el rbol de descendientes, que va hacia delante a travs de hijos, nietos, etc. De igual forma en informtica los arboles proporcionan una capacidad enorme para expresar la idea de jerarqua.

OBJETIVOS
En objetivo del presente trabajo es el de descubrir los arboles como paradigma de los tipos Recursivos de Datos, Cuando utilizar un rbol para almacenar informacin?, Diferenciar las formas de recorrer un rbol, todo esto de una forma resumida.

4.1.1 CONCEPTO DE RBOL


Es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos de un rbol contienen dos o ms enlaces. Los arboles cuyos nodos contienen dos enlaces (uno de los cuales puede ser null). El nodo raz es el primer nodo de un rbol, cada enlace en el nodo raz hace referencia a un hijo. El hijo izquierdo es el primer nodo en un subrbol izquierdo (tambin conocido como el nodo raz del subrbol izquierdo), y el hijo derecho es el primer nodo en el subrbol derecho (tambin conocido como el nodo raz del subrbol derecho). Los hijos de un nodo especifico se llaman hermanos. Un nodo sin hijos se llama nodo hoja. Generalmente los cientficos computacionales dibujan arboles desde el nodo raz hacia abajo, exactamente lo opuesto a la manera en que crecen los arboles naturales. Un rbol de bsqueda binaria (sin valores de nodo duplicados) cuenta con las caractersticas de que los valores en cualquier subrbol izquierdo son menores que el valor del nodo padre de ese subrbol, y los valores en cualquier subrbol derecho son mayores que el valor del nodo padre de ese subrbol. Buscar en un rbol binario un valor que concuerde con una clave es tambin un proceso rpido, especialmente para los arboles estrechamente empaquetados. En un rbol estrechamente empaquetado cada nivel contiene aproximadamente el doble de elementos que el nivel anterior. Concordancia o determinar que no existe una.

4.1.2 CLASIFICACIN DE RBOLES


rbol binario
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. Las expresiones algebraicas, debido a que los operadores que intervienen son operadores binarios, nos dan un ejemplo de estructura en rbol binario. La figura siguiente nos muestra un rbol que corresponde a la expresin aritmtica:

El rbol binario es una estructura de datos muy til cuando el tamao de la estructura no se conoce, se necesita acceder a sus elementos ordenadamente, la velocidad de bsqueda es importante o el orden en el que se insertan los elementos es casi aleatorio.

En definitiva, un rbol binario es una coleccin de objetos (nodos del rbol) cada uno de los cuales contiene datos o una referencia a los datos, una referencia a su subrbol izquierdo y una referencia a su subrbol derecho. Segn lo expuesto, la estructura de datos representativa de un nodo puede ser de la forma siguiente:

La definicin dada de rbol binario, sugiere una forma natural de representar rboles binarios en un ordenador. Una variable Raz referenciar el rbol y cada nodo del rbol ser un objeto de la clase CNodo. Esto es, la declaracin genrica de un rbol binario puede ser as:

Si el rbol est vaco, raz es igual a null; en otro caso, raz es una referencia al nodo raz del rbol y segn se puede observar en el cdigo anterior, este nodo tiene tres atributos: una referencia a los datos y dos referencias mas, una a su subrbol izquierdo y otra a su subrbol derecho.

rbol binario de bsqueda

Un rbol binario de bsqueda es un rbol ordenado; esto es, las ramas de cada nodo estn ordenadas de acuerdo con las siguientes reglas: para todo nodo ai son menores que la clave de ai, y todas las claves del subrbol izquierdo de ai son menores que la clave de ai, y todas las claves del subrbol derecho de ai son mayores que la clave de ai. Con un rbol de estas caractersticas, encontrar si un nodo de una clave determinada existe o no es una operacin muy sencilla. Por ejemplo, observando la figura siguiente, localizar la clave 35 es aplicar la definicin de rbol de bsqueda; esto es, si la clave buscada es menor que la clave del nodo en el que estamos, pasamos al subrbol izquierdo de este nodo para continuar la bsqueda, y si es mayor, pasamos al subrbol derecho. Este proceso continua hasta encontrar la clave o hasta llegar a un

subrbol vaco, rbol cuya raz tiene un valor null.

En java podemos automatizar el proceso de implementar un rbol binario de bsqueda diseado una clase CArbolBinB (Clase rbol binario de bsqueda) que proporcione los atributos y mtodos necesarios para crear cada nodo al rbol, as como para permitir el acceso a los mismos. La clase que diseamos a continuacin cubre estos objetos.

Operaciones con rboles binarios


Con los arboles binarios es posible definir algunas operaciones primitivas, estas operaciones son en el sentido de saber la informacin de un nodo y sirven para desplazarse en el rbol, hacia arriba o hacia abajo.

Info (p) Que devuelve el contenido del nodo apuntado por p. Left (p) Devuelve un apuntador al hijo izquierdo del nodo apuntado por p, o bien, Devuelve NULL si el nodo apuntado por p es una hoja. Right (p) Devuelve un apuntador al hijo derecho del nodo apuntado por p, o bien, Devuelve NULL si el nodo apuntado por p es una hoja. Father (p) Devuelve un apuntador al padre del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p es la raz.

Brother (p) Devuelve un apuntador al hermano del nodo apuntado por p, o bien, devuelve NULL si el nodo apuntado por p no tiene hermano. Estas otras operaciones son lgicas, tienen que ver con la identidad de cada nodo. IsLeft (p) Devuelve el valor true si el nodo actual es el hijo izquierdo del nodo apuntado Por p, y false en caso contrario. IsRight (p) Devuelve el valor true si el nodo actual es el hijo derecho del nodo apuntado por p, y false en caso contrario. IsBrother (p) Devuelve el valor true si el nodo actual es el hermano del nodo apuntado por p, y false en caso contrario.
4.1.3 CLASIFICACIONES BSICAS SOBRE RBOLES BINARIOS

Existen cuatro tipos de rbol binario:

A. B. Distinto. A. B. Similares. A. B. Equivalentes. A. B. Completos.

A continuacin se har una breve descripcin de los diferentes tipos de rbol binario as como un ejemplo de cada uno de ellos.

A. B. DISTINTO

Se dice que dos rboles binarios son distintos cuando sus estructuras son diferentes. Ejemplo:

A. B. SIMILARES

Dos rboles binarios son similares cuando sus estructuras son idnticas, pero la informacin que contienen sus nodos es diferente. Ejemplo:

A. B. EQUIVALENTES

Son aquellos rboles que son similares y que adems los nodos contienen la misma informacin. Ejemplo:

10

A. B. COMPLETOS

Son aquellos rboles en los que todos sus nodos excepto los del ultimo nivel, tiene dos hijos; el subrbol izquierdo y el subrbol derecho.

4.1.3.1 ALGORITMOS DE RECORRIDO EN RBOLES BINARIOS

Bsicamente se pueden utilizar tres formas para recorrer un rbol binario: PREORDEN, INORDEN Y POSTORDEN. Cuando se utiliza la forma preorden, primero se visita la raz, despus el subrbol izquierdo y por ultimo el subrbol derecho; en cambio, si se utiliza la forma inorden, primero se visita el subrbol izquierdo, despus la raz y por ultimo el subrbol derecho; y si se utiliza la forma postorden, primero se visita el subrbol izquierdo, despus el subrbol derecho y por ultimo la raz.

Evidentemente, las definiciones dadas son definiciones recursivas, ya que, recorrer un rbol utilizando cualquiera de ellas, implica recorrer sus subrboles empleando la misma definicin.

11

Si se aplican estas definiciones al rbol binario de la figura expresin algebraica mostrada anteriormente, la siguiente solucin:

PREORDEN: INORDEN: POSTORDEN:

/ a a

+ a + b b

b c - d / e f e / f f / /

* c / d -

c * + d e

El recorrido en preorden produce la notacin prefija; el recorrido en inorden produce la notacin convencional; y el recorrido en postorden produce la notacin postfija o inversa. Los nombres de preorden, inorden y postorden derivan del lugar en el que se visita la raz con respecto a sus rboles. Estas tres formas, se exponen a continuacin como tres mtodos recursivos de la clase CArbolBinario, con un nico parmetro r que representa la raz del rbol cuyos nodos se quieren visitar.

4.1.4 aplicaciones

Analicemos el programa del rbol binario. El mtodo main de la clase PruebaArbol empieza creando una instancia de un objeto Arbol vacio y asigna su referencia a la variable rbol en las lneas se generan 10 enteros al azar cada uno de los cuales se inserta en el rbol binario mediante una llamada al mtodo insertarNodo despus el programa realiza recorridos preorden, inorden y postorden (los cuales explicaremos en breve) La clase rbol tiene un campo prvate llamado raz una referencia tipo NodoArbol al nodo raz del rbol. El constructor de rbol inicializa raz con null para indicar que el rbol esta vaco. La clase

12

contiene el mtodo insertarNodo para insertar un nuevo nodo en el rbol adems de los mtodos recorridoPreorden, recorridoInorden y recorridoPostorden para empezar recorridos del rbol. Cada uno de estos mtodos llama a un mtodo utilitario recursivo para realizar las operaciones de recorrido en la representacin interna del rbol. //definicion de las clases NodoArbol y Arbol package com.deitel.jhtp7.cap17;

//definicion de clase nodoarbol

class NodoArbol {

//miembros de acceso del paquete

NodoArbol nodoIzq; //nodo izquierdo int datos; //valor del nodo NodoArbol nodoDer; //nodo derecho

//el constructor inicializa los datos y hace de este nodo un nodo raiz

public NodoArbol(int datosNodo)

{ datos=datosNodo;

13

nodoIzq=nodoDer=null; //el nodo no tiene hijos } //fin del constructor del nodo arbol

//localiza el punto de insercion e insertar un nuevo nodo; ignorar los valores duplicados public void insertar(int valorInsertar) { //inserta en el subarbol izquierdo if(valorInsertar<datos) { // insertar nuevo NodoArbol if(nodoIzq == null) nodoIzq = new NodoArbol(valorInsertar); else// continua recorriendo el subarbol izqierdo nodoIzq.insertar(valorInsertar); }//fin del if

else if(valorInsertar > datos)//insertar en el subarbol derecho { //insertar nuevo NodoArbol if (nodoDer == null) nodoDer = new NodoArbol (valorInsertar); else //continua recorriendo el subarbol derecho

nodoDer.insertar(valorInsertar);

14

}//fin de else if }//fin del metodo insertar }//fin de la clase NodoArbol //definicion de la clase rbol

public class arbol { private NodoArbol raiz; //el constructor inicialoza un Arbol vacio de enteros

public Arbol() { raiz=null; } //fin del constructor de Arbol sin argumentos

//insertar un nuevo nodo en el arbol de busqueda binaria

public void insertarNodo(int valorInsertar) { if (raiz == null)

raiz = NodoArbol(valorInsertar);//crea el nodo raiz aqui else raiz.insertar(valorInsertar);//llama al metodo insertar

15

} //fin del metodo insertarNodo

//comienza el recorrido preorden

public void recorridoPreorden() { ayudantePreorden(raiz); }//fin del metodo recorridoPreorden

//metodo recursivo para realizar el recorridoPreorden

private void ayudantePreorden(NodoArbol nodo) { if (nodo == null) return; System.out.printf("%d", nodo,datos); //imprime los datos del nodo ayudantePreorden(nodo.nodoIzq); izquierdo ayudantePreorden(nodo.nodoDer); derecho }// fin del metodo ayudantePreorden //recorre //recorre el el subarbol subarbol

//comineza recorrido inorden

16

public void recorridoInorden() { ayudanteInorden(raiz); } //fin del metodo recorridoInorden //metodo recursivo para realizar el recorrido inorden

private void ayudanteInorden(NodoArbol nodo) { if (nodo == null) return; ayudanteInorden(nodo.nodoIzq);//recorre el subarbol izquierdo Sstem.out.printf("%d", nodo.datos);//imprime los datos del nodo ayudanteInorden(nodo.nodDer);// recorre el subarbol derecho } //fin del metodo ayudanteInorden

//comienza recorrido Postorden public void recorridoPostorden() { ayudantePostorden(raiz); } // fin del metodo recorrido Postorden private void ayudantePostorden(NodoArbol nodo) { if (nodo == null) return;

17

ayudantePostorden(nodo.nodoIzq);// recorre el subarbol izquierdo

ayudantePostorden(nodo.nodoDer);// recorre el subarbol derecho

System.out.printf("%d", nodo.datos);//imprime los datos del nodo

} //fin del metodo ayudantePostorden }//fin de la clase arbol

El mtodo insertarNodo de la clase Arbol determina primero si el rbol esta vaco. De ser as, se asigna un nuevo objeto NodoArbol, se inicializa el nodo con el entero que se insertara en el rbol y se asigna el nuevo nodo a la referencia raz. Si el rbol no esta vaco se hace una llamada al mtodo insertar de NodoArbol . Este mtodo utiliza la recursividad para determinar la posicin del nuevo nodo en el rbol e inserta el nodo en esa posicin. En un rbol de bsqueda binaria, un nodo puede insertarse solamente como nodo hoja. El mtodo insertar NodoArbol compara el valor a insertar con el valor de datos en el nodo raz. Si el valor a insertar es menor que los datos del nodo raz el programa determina si el subrbol izquierdo esta vaco. De ser as se asigna un nuevo objeto NodoArbol, se inicializa con el entero que se insertara y se asigna el nuevo nodo a la referencia nodoIzquierdo. En caso contrario se hace una llamada recursiva a insertar para que se inserte el valor

18

en el subrbol izquierdo. Si el valor a insertar es mayor que los datos del nodo raz el programa determina si el subrbol derecho esta vaco. De ser as se asigna un nuevo objeto NodoArbol se inicializa con el entero que se insertara y se asigna el nuevo nodo a la referencia nodoDerecho. En caso contrario se hace una llamada recursiva a insertar par que se inserte el valor en el subrbol derecho. Si el valor Insertar ya se encuentra en el rbol simplemente se ignora.

Los mtodo recorridoInorden, recorridoPreorden y recorridoPostorden llaman a los mtodos ayudantes de Arbol llamados ayudanteInorden, ayudantePreorden y ayudantePostorden, respectivamente para recorrer el rbol e imprimir los valores de los nodos. Los mtodos ayudantes en la clase rbol permiten al programador iniciar un recorrido sin tener que pasar el nodo raz al mtodo. La referencia raz es un detalle de implementacin que no debe ser accesible para el programador. Los mtodos recorridoInorden, recorridoPreorden y recorridoPostorden simplemente toman la referencia privada raz y la pasan al mtodo ayudante apropiado para iniciar un recorrido del rbol. El caso base para cada mtodo ayudante determina si la referencia que recibe es null y de ser as regresa inmediatamente.

El mtodo ayudanteInorden define los pasos para un recorrido inorden 1. Recorre el subrbol izquierdo ayudanteInorden 2. Procesar el valor en el nodo 3. Recorrer el subrbol derecho ayudanteInorden con una llamada a

con

una

llamada

El recorrido inorden no procesa el valor en un nodo si no hasta que se procesan los valores en el subrbol izquierdo de ese nodo. El recorrido inorden del rbol es: 6 13 17 27 33 42 48

19

Observe que el recorrido inorden de un rbol de bsqueda binaria imprime los valores de los nodos en orden ascendente. El proceso de crear un rbol de bsqueda binaria ordena los datos de antemano por lo tanto a este proceso se le conoce como ordenamiento de rbol binario. El mtodo ayudantePreorden define los pasos para un recorrido preorden 1. Procesar el valor en el nodo 2. Recorrer el subrbol izquierdo con una ayudantePreorden 3. Recorrer el subrbol derecho con una ayudantePreorden llamada llamada a a

El recorrido preorden procesa el valor en cada uno de los nodos a medida que se van visitando. Despus de procesar el valor en un nodo dado, el recorrido preorden procesa los valores en el subrbol izquierdo y despus los valores en el subrbol derecho. El recorrido preorden del rbol es: 27 13 6 17 42 33 48

El mtodo ayudantePreorden define los pasos para un recorrido postorden 1. Recorre el subrbol izquierdo con ayudantePostorden 2. Recorre el subrbol derecho con ayudantePostorden 3. Procesar el valor en el nodo una una llamada llamada a a

El recorrido postorden procesa el valor en cada nodo despus de procesar los valores de todos los hijos de ese nodo. El recorridoPostorden del rbol es: 6 17 13 33 48 42 27

20

El rbol de bsqueda binaria facilita la eliminacin de valores duplicados. Al crear un rbol la operacin de insercin reconoce los intentos de insertar un valor duplicado ya que este sigue las mismas decisiones de ir a izquierda o ir a derecha en cada comparacin al igual que el valor original. Por lo tanto la operacin de insercin eventualmente comparara el valor duplicado con un nodo que contenga el mismo valor. En este punto la operacin de insercin puede decidir descartar el valor duplicado. Buscar en un rbol binario un valor que concuerde con una clave es u proceso rpido, especialmente para los arboles estrechamente empaquetados (o balanceados). E n un rbol estrechamente empaquetado cada nivel contiene aproximadamente el doble de elementos que el nivel anterior es un rbol binario estrechamente empaquetado cada nivel contiene aproximadamente el doble de elementos que el nivel anterior es un rbol binario estrechamente empaquetado. Un rbol de bsqueda binaria estrechamente empaquetado con n elementos tiene logn niveles. Por lo tanto se requieren cuando mucho logn comparaciones para encontrar una concordancia o determinar que no existe una. La bsqueda en un rbol de bsqueda binaria de 1000 elementos (estrechamente empaquetado) requiere cuando mucho de 10 comparaciones ya que 2 > 1000. La bsqueda en un rbol de bsqueda binaria de 1, 000,000 de elementos (estrechamente empaquetado) requiere cuando mucho de 20 comparaciones ya que 2>1, 000,000. Los ejercicios de este captulo presentan algoritmos para varias operaciones ms de arboles binarios como eliminar un elemento de un rbol binario imprimir un rbol binario en formato de rbol bidimensional y realizar un recorrido en orden de niveles de un rbol binario. En el recorrido en orden de niveles de un rbol binario se visitan sus nodos fila por fila empezando en el nivel del nodo raz. En cada nivel del rbol un recorrido en orden de niveles visita los nodos de izquierda a derecha. Otros ejercicios de arboles binarios incluyen el permitir que un arbol de bsqueda binaria contenga valores duplicados insertar valores de cadena en un rbol binario y determinar cuntos niveles hay en un rbol binario.

21

22

4.1.5 RBOLES BALANCEADOS

Mantener un rbol perfectamente balanceado es muy costoso, entonces se adopta un concepto menos estricto de balanceo: rboles balanceados (equilibrados). Un rbol est balanceado si para cada uno de sus nodos se tiene que las alturas de sus dos subrboles difieren a lo ms en 1. Se tiene que un rbol perfectamente balanceado es tambin balanceado; pero no es cierto lo contrario. Para estos rboles el mantenimiento del balanceo no es muy costoso, y las operaciones de bsqueda, insercin y borrado mantienen su orden O(log2n).

Los rboles pueden estar balanceados por altura o por peso.

rbol balanceado por altura: en dnde todos los hijos o nodos hoja se intentan mantener a la misma distancia de la raz.

rbol balanceado por peso: en dnde los nodos ms visitados o utilizados se mantienen a poca distancia de la raz

23

4.2 GRAFOS

Desafortunadamente no existe una terminologa estandarizada en la teora de los grafos, por lo tanto es oportuno aclarar que las presentes definiciones pueden variar ligeramente entre diferentes publicaciones de estructura de datos y de teora de grafos, pero en general se puede decir que un grafo como indica su nombre lo indica es la representacin (para nuestro caso) grfica de los datos de una situacin particular, ejemplo: Los datos contienen, en algunos casos, relaciones entre ellos que no son necesariamente jerrquicos. Por ejemplo, supongamos que unas lneas areas realizan vuelos entre las ciudades conectadas por lneas como se ve en la figura anterior (ms adelante se presentaran grafos con estructuras de datos); la estructura de datos que refleja esta relacin recibe el nombre de grafo. Se suelen usar muchos nombres al referirnos a los elementos de una estructura de datos. Algunos de ellos son "elemento", "tem", "asociacin de tems", "registro", "nodo" y "objeto". El nombre que se utiliza depende del tipo de estructura, el contexto en que usamos esa estructura y quien la utiliza. En la mayora de los textos de estructura de datos se utiliza el trmino "registro" al hacer referencia a archivos y "nodo" cuando se usan listas enlazadas, rboles y grafos. Tambin un grafo es una terna G = (V,A,j ), en donde V y A son conjuntos finitos, y j es una aplicacin que hace corresponder a cada elemento de A un par de elementos de V. Los elementos de V y de A se llaman, respectivamente, "vrtices" y "aristas" de G, y j asocia entonces a cada arista con sus dos vrtices.

Esta definicin da lugar a una representacin grfica, en donde cada vrtice es un punto del plano, y cada arista es una lnea que une a sus dos vrtices.

24

4.2.1 TERMINOLOGA DE GRAFOS


Grficamente estas tres estructuras de vrtices y arcos se pueden representar de la siguiente manera:

Algunos de los principales tipos de grafos son los que se muestran a continuacin:

Grafo regular: Aquel con el mismo grado en todos los vrtices. Si ese grado es k lo llamaremos k-regular.

Grafo bipartito: Es aquel con cuyos vrtices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vrtices pertenecientes al mismo conjunto Ejemplo.- de los dos grafos siguientes el primero es bipartito y el segundo no lo es.

25

Grafo completo: Aquel con una arista entre cada par de vrtices. Un grafo completo con n vrtices se denota Kn.

Grafo nulo: Se dice que un grafo es nulo cuando los vrtices que lo componen no estn conectados, esto es, que son vrtices aislados.

Grafos Isomorfos: Dos grafos son isomorfos cuando existe una correspondencia biunvoca (uno a uno), entre sus vrtices de tal forma que dos de estos quedan unidos por una arista en comn.

26

Grafos Platnicos: Son los Grafos formados por los vrtices y aristas de los cinco slidos regulares (Slidos Platnicos), a saber, el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro.

grafos conexos: Un grafo se puede definir como conexo si cualquier vrtice V pertenece al conjunto de vrtices y es alcanzable por algn otro. Otra definicin que dejara esto ms claro sera: un grafo conexo es un grafo no dirigido de modo que para cualquier par de nodos existe al menos un camino que los une.

27

4.2.2 OPERACIONES BSICAS SOBRE GRAFOS


Clases para la implementacin de grafos. Analizaremos algunas de las operaciones sobre grafos, como: Creacin. Insercin. Bsqueda. Eliminacin. Continuaremos utilizando los apuntadores que se usaron en las secciones anteriores. TOP para hacer referencia al primer nodo, LD para indicar liga derecha y LA para indicar liga abajo, por ltimo usaremos los apuntadores P y Q para hacer referencia a los nuevos nodos que vayan a ser usados.

ALGORITMO DE CREACION.

28

ALGORITMO DE INSERCION

ALGORITMO DE BORRADO

29

CONCLUSIN

Brevemente concluimos con decir que el estudio de arboles ilustra las conexiones entre varios temas de la matemtica discreta y ofrece oportunidades para aprovechar la matemtica formal en la programacin practica.

BIBLIOGRAFIAS

Aho, A.V., J.E. Hopcroft, J.D. Ullman, Estructuras de datos y algoritmos, Addison-Wesley, 1988. Arnold, K., J. Gosling, D. Holmes, El Lenguaje de Programacin Java, 3 Ed., Addison-Wesley, 2001. Weiss, M.A., Estructuras de datos y algoritmos, Addison-Wesley, 1995. Wirth, N., Algoritmos Iberoamericana, 1987. y Estructuras de Datos, Prentice-Hall

30

Anda mungkin juga menyukai