INSTITUTO TECNOLGICO DE TEHUACN DEPTO. DE SISTEMAS Y COMPUTACIN MANUAL DE PRCTICAS ESTRUCTURA DE DATOS (SCC-0408) PLAN ISIC-2004-296 PRESENTA M.C. LILIANA ELENA OLGUN GIL AGOSTO 2008. MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. NDICE I. PRESENTAClN 2 ll. lNTRODUCClN 3 lll. OBJETlVO GENERAL 4 lV. CONTENlDO DE LA PRACTlCA 5 V. REPORTE DE RESULTADOS 6 Vl. PRACTlCAS: Vl.l.Manejo de Memoria 7 Vl.2. Operaciones bsicas en las listas simplemente ligadas l0 Vl.3 Suma de elementos de dos listas simplemente ligadas l2 Vl.4. Mezcla de listas simplemente ligadas l3 Vl.5.Suma de polinomios l4 Vl.6.Operaciones bsicas en una lista doblemente ligada Vl.7.Suma de nmeros arbitrariamente grandes Vl.8.Separar en dos una lista doblemente ligada Vl.9.lmplementacion de una lista ligada genrica Vl.l0.Operaciones bsicas con pilas estticas y dinmicas Vl.ll. Algoritmo para conversin de una expresin de lnfijo a Posfijo Vl.l2.Algoritmo para la evaluacin de expresiones posfijas Vl.l3.Operaciones Fundamentales sobre Colas de Espera Simple Vl.l4.Applet Evaluador Vl.l5.Operaciones Fundamentales sobre Colas de Espera Circulares Vl.l6.Simulacin de un cajero automatizado Vl.l7.Algoritmos Recursivos Vl.l8.Operaciones bsicas sobre Arboles Binarios de Bsqueda Vl.l9.Diccionario Espaol-lngles Vl.20.Applet didctico que muestre como funcionan los algoritmos de ordenamiento lnterno Ingeniera en Sistemas Computacionales
2 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Vl.2l.Frame didctico que compare los mtodos de ordenamiento externo Vl.22.Frame didctico que muestre el funcionamiento y compare los mtodos de bsqueda secuencial y binario Vl.23.Frame que permita realizar la bsqueda de un dato por medio de una tabla Hash Vll. BlBLlOGRAFlA Ingeniera en Sistemas Computacionales
3 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRESENTACIN El Departamento de Sistemas y Computacin del lnstituto Tecnolgico de Tehuacn, manifiesta su inters por elevar la calidad del proceso de enseanza aprendizaje a travs de acciones que permitan que los estudiantes vinculen lo aprendido de manera terica en el aula con la prctica realizada en el laboratorio, rompiendo con mtodos tradicionales que propician la pasividad del estudiante y as promover su participacin. El presente documento es una propuesta para la gua de prcticas de laboratorio para la asignatura de Estructura de Datos perteneciente al plan de estudios lSlC-2004-296 de la carrera de lngeniera en Sistemas Computacionales, el cual pretende rescatar las actividades fundamentales de experimentacin y generar aprendizajes consistentes a los futuros egresados de esta honorable lnstitucin. Ingeniera en Sistemas Computacionales
4 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. INTRODUCCIN Conscientes de la importancia que tiene la reflexin terica con el estudio de la prctica, se ha hecho necesario reforzar la relacin que existe entre el sujeto de aprendizaje y la realidad del entorno. Por lo anterior se pretende fortalecer y ampliar este vnculo terico prctico en el rea de Sistemas y Computacin , tomando en consideracin los aportes en el campo cientfico y tecnolgico. Las prcticas del presente manual desean motivar en el alumno el inters por verificar por s mismo la aplicacin y el uso de los diversos algoritmos y tcnicas de programacin que se han presentado en forma terica, as como aprender a identificar el tipo de estructura de datos que puede aplicar para resolver un problema determinado. A partir de estas experiencias prcticas deber ser capaz de participar en la resolucin de problemas reales que requieran su creatividad, ingenio, conocimiento y manejo de diferentes estructuras de datos y algoritmos que pueden ser aplicados en cualquier campo de las ciencias. Ingeniera en Sistemas Computacionales
5 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. OBETI!O GENERAL Proporcionar una gua de prcticas que permita al alumno aplicar los conocimientos tericos que adquirir en el transcurso de la asignatura de Estructura de datos, con el fin de que mediante problemas hipotticos y simulados sea capaz de establecer el vnculo entre su medio ambiente acadmico y su proyeccin profesional. lgualmente y a travs de la metodologa prctica, se pretende inducir al alumno a la disciplina de la investigacin y a la relacin profesional, al establecer el enlace con el docente y al fomentar criterios y normas disciplinarias con el mbito que lo rodea. Ingeniera en Sistemas Computacionales
6 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. CONTENIDO DE LA PRCTICA l. NMERO DE LA PRACTlCA: Cada uno de los entes abstractos que forman la serie ordenada de prcticas y que indican la secuencia de las mismas. 2. NOMBRE: Ttulo para designar la prctica correspondiente al programa de estudio de la materia. 3. APARTADO lNVOLUCRADO DEL PROGRAMA DE ESTUDlO: Correspondencia del contenido de la prctica con la teora de los temas del programa de estudio. 4. OBJETlVO: Propsito educativo que se pretende o se desea alcanzar al trmino de la prctica. 5. MATERlAL Y EQUlPO: Determinacin del material y equipo que se utilizar en el desarrollo de la prctica. 6. METODOLOGlA: Conjunto de mtodos, tcnicas y procedimientos didcticos, as como de las experiencias de aprendizaje que ayudan al desarrollo del proceso enseanza aprendizaje, con el fin de alcanzar un autntico proceso educativo. 7. SUGERENClAS DlDACTlCAS: Apoyo sugerido para complementar el aprendizaje en la prctica. Ingeniera en Sistemas Computacionales
7 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. REPORTE DE RESULTADOS Para cada una de las practicas se deber entregar un reporte, el cual debe incluir: Ttulo de la prctica Anlisis de la prctica (media cuartilla mnimo) Diagramas de clases de la aplicacin Diagramas de flujo de cada mtodo de las clases definidas Listado de cdigo fuente documentado Conclusiones de la prctica(como desarrollo la prctica, a que resultados lleg, que problemas se presentaron, y que dudas no pudo resolver). Bibliografia CD grabado con la aplicacin funcionando. Ingeniera en Sistemas Computacionales
8 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" # N$%&'() Manejo de Memoria A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad ll: Manejo de Memoria 2.lManejo de Memoria Esttica 2.2Manejo de Memoria Dinmica O&6(,.0$) Establecer la diferencia entre las variables estticas y dinmicas en una aplicacin. I/,'$-233.7/) La memoria es el "almacn" donde se colocan desde el sistema operativo, el compilador, el cdigo fuente y todas las variables y estructuras que se incluyen en un programa. De la buena seleccin de una estructura depender el desempeo de una aplicacin, de acuerdo al problema que se va a resolver, se deber elegir una estructura que manipule Memoria Esttica o Memoria Dinmica. M+,('.+1 8 E92.*$) Computadora Software para desarrollar mapas conceptuales lnternet Bibliografa propuesta M(,$-$1$4:+) 1. Formar equipos de trabajo de 3 personas como mximo. 2. lnvestigar en lnternet y en la bibliografa propuesta y adicional sobre el manejo de memoria esttica y dinmica. 3. lnvestigar en internet el modelo de memoria y como se distribuyen cada uno de los elementos involucrados en una programa en este modelo. 4. Analizar e intercambiar conceptos y discutir lo que cada miembro el equipo entendi. 5. Con las aportaciones y conclusiones de cada miembro del equipo debern elaborar un mapa conceptual que incluya los aspectos ms importantes del manejo de memoria. S24('(/3.+5 -.-;3,.3+5) Ingeniera en Sistemas Computacionales
9 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Realizar lecturas correspondientes sobre manejo de memoria en el libro 8 referenciado en la Bibliografia al final de este documento en el Capitulo l0: Asignacin Dinmica de Memoria. Realizar investigacin en diferentes sitios de internet donde se trate este tema. Realizar cuadros sinpticos (por cada participante) donde se puntualice lo que cada integrante del equipo haya entendido y considere importante. En reunin de los integrantes del equipo presentar y discutir el punto de vista de cada uno y obtener un solo resumen de las conclusiones que obtuvieron. Ingeniera en Sistemas Computacionales
10 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 2 N$%&'() Operaciones bsicas con Pilas Estticas y Dinmicas A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.l Pilas O&6(,.0$) lmplementar una clase que defina las operaciones bsicas con la estructura de datos Pila. I/,'$-233.7/) Para cada una de las aplicaciones que se pueden desarrollar, existe una estructura que proporciona al programador cierta funcionalidad. Las estructuras de tipo LlFO(Ultimo en entrar primero en salir) se utilizan en aplicaciones donde necesitamos recuperar los datos en el orden inverso al cual fueron introducidos. Es necesario conocer las operaciones bsicas sobre pilas para poder manipular la estructura. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Crear una clase Pila, la cual defina un arreglo de tamao N el cual se utilizar como estructura para implementar una Pila Estatica y definir las operaciones de lnsercion (push), Eliminacion (pop) , pilaLlena y pilaVacia. Crear una clase NodoP , la cual defina un nodo que ser utilizado para definir una Pila Dinmica, definir una clase llamada PilaD en la cual se implementen las operaciones de lnsercion (pushD), Eliminacion(popD) y pilaVacia utilizando una lista simplemente ligada. lmplementar 2 aplicaciones, una para probar la pila estatica y otra para probar la pila dinmica mediante un men con las siguientes opciones: lnsertar Eliminar Ingeniera en Sistemas Computacionales
11 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Salir S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre Pilas Analizar los diagramas de flujo que se expusieron en clase. Ingeniera en Sistemas Computacionales
12 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" < N$%&'() Algoritmo para conversin de una expresin de n!ijo a Pos!ijo A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.l Pilas O&6(,.0$) Aplicar el concepto de pila en la conversin de expresiones I/,'$-233.7/) Una de las aplicaciones de las pilas est en la implementacin de compiladores, para evaluar una expresin el compilador traduce la expresin a la notacin polaca para permitir que sea ms fcil y rpido evaluarla y obtener el resultado. Aqu se utiliza una pila de operadores para hacer dicha conversin. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) lmplementar el algoritmo para conversin de expresiones analizado en clase, utilizando las operaciones bsicas definidas en cualquiera de las clases definidas en la prctica No.l0 lmplementar una aplicacin para convertir diferentes expresiones S24('(/3.+5 -.-;3,.3+5) Analizar el algoritmo expuesto en clase Consultar otras fuentes Ingeniera en Sistemas Computacionales
13 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 4 N$%&'() Algoritmo para la evaluacin de expresiones pos!ijas A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.l Pilas O&6(,.0$) Aplicar el concepto de pila en la evaluacin de expresiones posfijas. I/,'$-233.7/) Una vez que la expresin es convertida por el compilador en notacin polaca o polaca inversa se debe evaluar cada operando y cada operador para obtener el resultado final de la operacin, aqu se utiliza una pila de operandos para ir almacenando cada operando y el resultado de cada operacin. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) lmplementar el algoritmo para evaluar expresiones posfijas proporcionando el resultado, utilizando el algoritmo discutido en clase, utilizando las operaciones bsicas definidas en cualquiera de las clases definidas en la prctica No.l0 lmplementar una aplicacin para evaluar diferentes expresiones posfijas. S24('(/3.+5 -.-;3,.3+5) Analizar el algoritmo expuesto en clase Consultar otras fuentes de informacin como ligas electrnicas y la bibliografa propuesta en el aula. Ingeniera en Sistemas Computacionales
14 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" = N$%&'() Applet Evaluador A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.l Pilas O&6(,.0$) Aplicar el concepto de pila en la conversin y evaluacin de expresiones posfijas. I/,'$-233.7/) Una manera de vincular la teora con la prctica es generar una aplicacin visual en la cual se conjunte ambos conceptos, la conversin y la evaluacin, simulando lo que hace un compilador. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Algoritmos implementados en las practicas 2,3 y 4. M(,$-$1$4:+) lmplementar un Applet de Java, el cual permita capturar una expresin infija y al presionar el botn <convertir> la convierta a posfijas, as mismo deber tener un botn <evaluar> el cual inicie inhabilitado, hasta que la expresin infija haya sido convertida a Posfija, al presionar el botn <evaluar> se solicitaran al usuario los valores para cada variable y se mostrara el resultado de la evaluacin de la expresin. La expresin de entrada se proporcionara con variables y puede llevar cualquiera de los operadores aritmticos y/o parntesis. Deber proteger su applet para casos en los cuales las areas de texto de captura estn vacas. La clase Pila utilizada en esta aplicacin debe ser genrica, es decir su informacin debe ser de tipo Object. S24('(/3.+5 -.-;3,.3+5) Consultar documentacin sobre el manejo de Applets en Java y sus diferentes controles. Analizar los diferentes algoritmos expuestos en clase. Consultar otras fuentes de informacin. Ingeniera en Sistemas Computacionales
15 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 6 N$%&'() Operaciones "undamentales sobre #olas de Espera $imple A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.2 Colas O&6(,.0$) lmplementar una clase que defina las operaciones bsicas con la estructura de datos Cola I/,'$-233.7/) Las estructuras de tipo FlFO (Primero en entrar, Primero en salir), tienen aplicacin en el desarrollo de aplicaciones donde sea necesario recuperar los datos en el mismo orden en que fueron insertados, es necesario conocer la implementacin en operaciones fundamentales sobre estas estructuras. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Crear una clase Cola, la cual defina un arreglo de tamao N el cual se utilizar como estructura para implementar una Cola Esttica y definir las operaciones de meter, sacar , colaLlena y colaVacia. Crear una clase NodoC , la cual defina un nodo que ser utilizado para definir una Cola Dinmica, definir una clase llamada ColaD en la cual se implementen las operaciones de meter, sacar y colaVacia utilizando una lista simplemente ligada. lmplementar 2 aplicaciones, una para probar la cola esttica y otra para probar la cola dinmica mediante un men con las siguientes opciones: lnsertar Eliminar Salir Ingeniera en Sistemas Computacionales
16 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Utilizar los diagramas de flujo analizados en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre Colas Simples Analizar los diagramas de flujo que se expusieron en clase. Ingeniera en Sistemas Computacionales
17 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" > N$%&'() Operaciones "undamentales sobre #olas de Espera #irculares A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.2 Colas O&6(,.0$) lmplementar una clase que defina las operaciones bsicas con la estructura de datos Cola Circular esttica y dinmica. I/,'$-233.7/) Dentro de las estructuras FlFO existe una variante la cual permite que las operaciones fundamentales se lleven a cabo en menos tiempo, evitando corrimientos, intercambios y accesos innecesarios a memoria. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Crear una clase ColaCircular, la cual defina un arreglo de tamao N el cual se utilizar como estructura para implementar una Cola Esttica Circular y definir las operaciones de meter, sacar , colaLlena y colaVacia. Crear una clase NodoC , la cual defina un nodo que ser utilizado para definir una Cola Dinmica Circular, definir una clase llamada ColaCircularD en la cual se implementen las operaciones de meter, sacar y colaVacia utilizando una lista simplemente ligada. lmplementar 2 aplicaciones, una para probar la cola esttica circular y otra para probar la cola dinmica circular mediante un men con las siguientes opciones: lnsertar Eliminar Salir Ingeniera en Sistemas Computacionales
18 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Utilizar los diagramas de flujo analizados en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre Colas Simples Analizar los diagramas de flujo que se expusieron en clase. Ingeniera en Sistemas Computacionales
19 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 8 N$%&'() $imulacion de un cajero automati%ado A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.2 Colas O&6(,.0$) lmplementar una aplicacin controlada por tiempo utilizando como herramienta auxiliar de desarrollo una cola en cualquiera de sus variantes. I/,'$-233.7/) Una de las aplicaciones de las colas de espera es la simulacin de eventos para reducir tiempos de espera en lneas de produccin o servicios, una forma de entender la funcionalidad que puede tener una cola de espera es simular procesos de la vida real utilizando como herramienta una cola de espera. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clases definidas en las practicas 6 7 M(,$-$1$4:+) Una simulacin conducida por tiempo es aquella en la que el programa tiene una contador que representa a un reloj. Cada vez que se incrementa el contador pasa l minuto. Las cosas que pueden suceder cada minuto y que deben almacenarse son: Puede llegar un cliente, puede salir un cliente, la gente puede estar an esperando en la fila. Hagamos una lista de estas acciones y lo que habra que hacer cuando ocurran: Si llega un cliente, ponerlo en la fila Si el cajero esta libre, avanza un coche a la ventanilla. El tiempo de servicio se pone a 5 mintos. Si hay un cliente en la ventanilla, el tiempo que le queda a ese cliente para estar servido debe decrementarse. Si hay clientes en la fila, debe registrarse que tienen que permanecer en la cola l minutos mas. Podemos simular los eventos con un generador de nmeros aleatorios. Si el numero aleatorio esta entre 0.0 y 0.2, ha llegado un cliente Si el nmero aleatorio es mayor que 0.2 y menor que l.0, no ha llegado ningn cliente. Ingeniera en Sistemas Computacionales
20 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Podemos simular que el cajero esta libre considerando que el tiempo que le queda al cliente en la caja es 0, cuando un cliente entra para ser antendido el tiempo del cajero se pone a 5 y se decrementa por cada minuto que pase en servicio, cuando el tiempo llega a cero el cajero esta libre. Si llega un cliente hay que checar si la caja esa libre, sino el cliente debe esperar un minuto ms en la cola. El objetivo es saber cunto espera un cliente en la fila. Para esto deber contar el nmero de clientes que llegaron y el tiempo de espera en la fila de todos los clientes, calcular este tiempo para una caja y para dos cajas y determinar si al aumentar una caja se mejora el tiempo de espera S24('(/3.+5 -.-;3,.3+5) Analizar el problema para determinar el tipo de estructura que es til como auxiliar para la solucin del problema propuesto. Ingeniera en Sistemas Computacionales
21 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 9 N$%&'() Operaciones bsicas en las listas simplemente ligadas A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas 3.3.l Listas Enlazadas Simples
O&6(,.0$) El alumno implementar, utilizando un lenguaje de programacin, una clase y despus una aplicacin donde se utilicen las operaciones bsicas sobre las listas enlazadas simples. I/,'$-233.7/) Las Listas ligadas son las estructuras dinmicas por excelencia, permiten que el tamao de la estructura pueda crecer o decrecer segn la necesidad de la aplicacin, es importante conocer la implementacin y el funcionamiento de esta estructura para poder posteriormente utilizar las clases definidas en el lenguaje que permiten implementar las operaciones bsicas sobre la misma. M+,('.+1 8 (92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) l. lmplementar una clase llamada Nodo que represente el nodo de la lista simplemente ligada, donde la informacin que almacenara ser de tipo entero. 2. lmplementar una clase llamada Lista que represente la lista simplemente ligada y en donde se definirn las operaciones de insercin al frente, insercin al final, insercin ordenada, bsqueda, eliminacin y recorrido. Deber utilizar los diagramas de flujo vistos en clase para implementar cada una de las operaciones descritas anteriormente. 3. lmplementar una aplicacin donde se defina un men para cada una de las operaciones descritas en el apartado nmero 2. S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre listas ligadas. Ingeniera en Sistemas Computacionales
22 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Analizar los diagramas de flujo que se expusieron en clase. PRCTICA N" #0 N$%&'() $uma de elementos de dos listas simplemente ligadas A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas. 3.3.l Listas Enlazadas Simples O&6(,.0$) Utilizar las operaciones bsicas sobre listas simplemente ligadas para resolver la suma de nodos entre dos listas simplemente ligadas. I/,'$-233.7/) Es importante aprender a aplicar las Listas simplemente ligadas a la solucin de un problema, utilizando como operaciones de entrada y salida las operaciones bsicas sobre listas ligadas simples, esto marcara un fundamento para poder utilizar las Clases definidas en el lenguaje para el manejo de esta estructura de datos. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clase Nodo (Resultado de la prctica No. 2) Clase Lista (Resultado de la prctica No. 2) M(,$-$1$4:+) 1. lmplementar una aplicacin en la cual se defina un mtodo llamado sumaListas el cual reciba como parmetro un objeto Lista, y devuelva un objeto Lista, que ser el resultado de sumar 2 listas simplemente ligadas que no necesariamente tendrn que ser del mismo tamao. El mtodo no deber ser esttico para que sea invocado por un objeto de la clase lista.
Ingeniera en Sistemas Computacionales
23 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. 2. La sumatoria ser un nodo de la listal con un nodo de la lista2, si alguna de las dos listas termina primero deber pasar los nodos restantes a la tercera lista. 3. Para crear las dos listas originales deber utilizar cualquiera de las inserciones implementadas en la clase Lista. Ingeniera en Sistemas Computacionales
24 8 3 9 7 7 12 15 5 9 2 2 2 5 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" ## N$%&'() Me%cla de listas simplemente ligadas A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3Listas Enlazadas Simples. 3.3.l Listas Enlazadas Simples. O&6(,.0$) Aprender a manejar las referencias a nodos de una lista simplemente ligada, de tal forma que visualice la solucin para no perder nodos de las dos listas que se estn mezclando. I/,'$-233.7/) Una forma de poder entender el funcionamiento de las Listas Ligadas simples es crear aplicaciones donde permitan manipular las referencias a nodos sin perder los dems nodos, esta aplicacin permite entender el manejo de las referencias en las listas simplemente ligadas. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clase Nodo (Resultado de la prctica No. 2) Clase Lista (Resultado de la prctica No. 2) M(,$-$1$4:+) l. Crear dos listas simplemente ligadas de nombres de personas utilizando cualquiera de los algoritmos de insercin implementados en la clase Lista de la practica No.2 2. Mezclar en una tercera lista los elementos de la primera lista intercalando con elementos de la segunda lista, al final las dos primeras listas quedaran vacas, no se deben crear nuevos nodos en la tercera lista. Ingeniera en Sistemas Computacionales
25 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. 3. Mostrar la lista resultante. 4. Deber prever que las listas no necesariamente sern del mismo tamao. Ejemplo: Ingeniera en Sistemas Computacionales
26 Ana Luz F!" L#$ P%&"! 'uan Lu#( Ca"!( Pa)! P%&"! Ana 'uan Luz Lu#( F!" Pa)! L#$ Ca"!( MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #2 N$%&'() $uma de Polinomios A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas Simples. 3.3.l Listas Enlazadas Simples. O&6(,.0$) Aplicar las listas simplemente ligadas para resolver un problema matematico. I/,'$-233.7/) Es importante aprender a aplicar las Listas simplemente ligadas a la solucin de un problema, utilizando como operaciones de entrada y salida las operaciones bsicas sobre listas ligadas simples, esto marcara un fundamento para poder utilizar las Clases definidas en el lenguaje para el manejo de esta estructura de datos. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clase Nodo (Resultado de la prctica No. 2) Clase Lista (Resultado de la prctica No. 2) M(,$-$1$4:+) lmplementar una aplicacin donde se representen dos polinomios, cada uno en una lista simplemente ligada, ordenados por exponente. Los polinomios no necesariamente tendrn el mismo nmero de trminos, cada nodo en las listas estarn formadas por el coeficiente, el exponente y la referencia al nodo siguiente. Para insertar los dos polinomios originales, deber utilizar una modificacin de la insercin ordenada implementada en la clase Lista de la prctica No.2. Deber implementar un mtodo que reciba las dos listas que contienen los polinomios a sumar y devolver una tercera lista que ser el polinomio resultante de la suma. Ingeniera en Sistemas Computacionales
27 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Al final imprimir el polinomio resultante. Este mtodo deber implementarse fuera de la clase Lista.(Ver ejemplo) Si: polinomiol= polinomio2= Ingeniera en Sistemas Computacionales
28 3 5 *2 3 3 1 2 4 3 3 5 2 3 5 2 4 1 3 5 2 *10 0 2 0 *8 0 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #< N$%&'() Operaciones bsicas en una lista doblemente ligada A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas. 3.3.2 Listas Enlazadas Dobles. O&6(,.0$) lmplementar una clase que contenga mtodos para cada una de las operaciones bsicas sobre listas enlazadas dobles y una aplicacin donde se utilicen estas operaciones. I/,'$-233.7/) Las Listas ligadas son las estructuras dinmicas por excelencia, permiten que el tamao de la estructura pueda crecer o decrecer segn la necesidad de la aplicacin, es importante conocer la implementacin y el funcionamiento de esta estructura para poder posteriormente utilizar las clases definidas en el lenguaje que permiten implementar las operaciones bsicas sobre la misma. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) l. lmplementar una clase llamada NodoD que represente el nodo de la lista doblemente ligada, donde la informacin que almacenara ser de tipo entero. 2. lmplementar una clase llamada ListaD que represente la lista doblemente ligada y en donde se definirn las operaciones de insercin al frente, insercin al final, insercin ordenada, bsqueda, eliminacin, recorrido y recorrido inverso. Deber utilizar los diagramas de flujo vistos en clase para implementar cada una de las operaciones descritas anteriormente. 3. lmplementar una aplicacin donde se defina un men para cada una de las operaciones descritas en el apartado nmero 2. S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre listas ligadas. Analizar los diagramas de flujo que se expusieron en clase. Ingeniera en Sistemas Computacionales
29 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #4 N$%&'() $uma de n&meros arbitrariamente grandes A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas Tema 3.3Listas Enlazadas . 3.3.2 Listas Enlazadas Dobles. O&6(,.0$) Aplicar una lista doblemente ligada para sumar dos nmeros arbitrariamente grande, donde cada nodo de la lista doblemente ligada representara un digito del numero, y la lista resultante ser el numero que resulte de la suma de los dos primeros. I/,'$-233.7/) La utilidad que puede tener una bicola o lista doblemente ligadas se demuestra en el desarrollo de la solucin de la problemtica planteada en esta prctica donde podemos aprovechar la funcionalidad de poder recorrer el conjunto de elementos en ambos sentidos. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clase ListaD M(,$-$1$4:+) 1. lmplementar una aplicacin en donde se defina un mtodo que lea digito a digito cada uno de los nmeros a sumar y los almacene en una lista doblemente ligada utilizando el algoritmo de insercin al final. 2. lmplementar un mtodo que reciba como parmetro las listas doblemente ligadas que contienen cada uno de los nmeros y devuelva como resultado una lista doblemente ligada que representa el nmero resultante. Deber considerar los acarreos al ir sumando cada digito, esto es cuando la suma de cmo resultado l0 o ms deber guardar el acarreo para sumarlo en la siguiente suma de dgitos por ejemplo si la suma da como resultado l2 el nmero a guardar en la tercera lista el 2 y el l es el acarreo que se sumara al siguiente digito. Ingeniera en Sistemas Computacionales
30 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. 3. En el main de la aplicacin debe crear tres objetos que la clase ListaD, dos para almacenar los nmeros originales y el tercer objeto para almacenar el resultado. Ver ejemplo: Ingeniera en Sistemas Computacionales
31 3 4 5 7 3 6 8 6 7 1 4 4 3 4 2 5 7 1 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #= N$%&'() $eparar en dos una lista doblemente ligada A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas. 3. 3.2 Listas Enlazadas Dobles. O&6(,.0$) Aprender a manipular las referencias en las listas doblemente ligadas. I/,'$-233.7/) Una forma de poder entender el funcionamiento de las Listas Ligadas dobles es crear aplicaciones donde permitan manipular las referencias a nodos sin perder los dems nodos, esta aplicacin permite entender el manejo de las referencias en las listas doblemente ligadas. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) Clase ListaD M(,$-$1$4:+) 1. lmplementar una aplicacin que contenga un mtodo que reciba una lista doblemente ligada como parmetro la cual contendr nmeros enteros y muestre las dos listas resultantes de separar la lista original. 2. El criterio de separacin de las dos listas ser los nmeros primos se enviaran a una lista y los nmeros no primos se enviaran a otra lista. 3. Recuerde que los nmeros primos son aquellos que solo son divisibles entre ellos mismos y la unidad. 4. La lista original desaparecer despus de hacer la separacin. 5. En el main deber crear tres objetos de la clase ListaD, uno que ser la lista original y los otros dos que sern las listas resultantes de la separacin. Ingeniera en Sistemas Computacionales
32 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. 6. La primera lista se llenara con la insercin al final y para las listas resultantes de utilizara la insercin al final.
Ingeniera en Sistemas Computacionales
33 8 1 3 6 7 4 8 6 13 4 7 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #6 N$%&'() mplementacin de una 'ista 'igada (en)rica A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lll: Estructuras Lineales Estticas y Dinmicas. Tema 3.3 Listas Enlazadas. 3.3.2 Listas Enlazadas Dobles. O&6(,.0$) Aprender a implementar listas genricas(Object) I/,'$-233.7/) Las listas ligadas genricas, tienen una gran funcionalidad, y en ellas se aplica el concepto de reutilizacin, ya que al declarar de tipo Object la informacin de esta, permitimos que la estructura este preparada para poder recibir datos de cualquier tipo y con esto evitar el repetir la definicin de cdigo para cada tipo de dato. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) lmplementar una clase NodoG, el cual contenga como tipo Object al atributo informacin. lmplementar una clase ListaG, la cual contenga la definicin de las operaciones bsicas sobre listas ligadas utilizando el tipo Object como informacin a ser almacenada, eliminada, segn corresponda. Crear una aplicacin donde se utilice una lista genrica para realizar operaciones bsicas de lnsercin, Eliminacin y Bsqueda S24('(/3.+5 -.-;3,.3+5) lnvestigar sobre comparacin de objetos de tipo Object Revisar la teora expuesta en clase Revisar las operaciones sobre listas ligadas Ingeniera en Sistemas Computacionales
34 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #> N$%&'() Algoritmos *ecursivos A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad lV: Recursividad Tema 4.l, 4.2, 4.3,4.4 I/,'$-233.7/) La recursividad es una herramienta muy poderosa en la programacin que permite que se reduzca considerablemente el cdigo de un algoritmo para la solucin de un problema, existen versiones iterativas que al compararlas contra soluciones recursivas mejoran considerablemente el diseo de la solucin, contra las desventajas que pudiera presentar la implementacin recursiva de algoritmos iterativos, son mas los beneficios que se obtienen. O&6(,.0$) Aprender y aplicar los conceptos de recursividad, definir soluciones recursivas e implementar mtodos recursivos eficientes. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Analizar e implementar las versiones iterativas y recursivas de los siguientes problemas: Sumatoria de los n nmeros naturales Factorial de un numero Serie Fibonacci Potencia de un numero Algoritmo de Euclides Conversin de un nmero decimal a binario, octal y hexadecimal Torres de Hanoii S24('(/3.+5 -.-;3,.3+5) Definir el modelo recursivo de cada problema lmplementar la versin iterativa lmplementar la versin recursiva Ingeniera en Sistemas Computacionales
35 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #8 N$%&'() Operaciones bsicas sobre Arboles +inarios de +&s,ueda A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad V: Arboles Tema 5.2 Operaciones bsicas sobre arboles binarios O&6(,.0$) lmplementar las operaciones bsicas en rboles binarios de bsqueda I/,'$-233.7/) La estructura de rbol es muy socorrida en soluciones donde se requiera que los datos se relacionen con diferentes datos y en diferente forma, tambin son muy tiles en la representacin de expresiones binarias, arboles de bsqueda que hacen la las bsquedas de datos sean mas rpidas que en una bsqueda secuencial en una lista lineal M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Definir una clase NodoA para representar el nodo de un rbol binario Definir una clase Arbol para implementar las operaciones de insercin, insercin recursiva, eliminacin, bsqueda de un dato y los recorridos enorden, preorden y posorden. Definir una aplicacin para probar cada una de estas operaciones: lnsercin Eliminacin Bsqueda Recorridos Salir S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre Arboles Binarios de bsqueda. Analizar los diagramas de flujo que se expusieron en clase. Ingeniera en Sistemas Computacionales
36 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" #9 N$%&'() Diccionario Espa-ol.ngles A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad V: Arboles Tema 5.2 Operaciones bsicas sobre arboles binarios O&6(,.0$) Utilizar las operaciones bsicas sobre arboles para la solucin de un problema I/,'$-233.7/) La estructura de rbol es muy socorrida en soluciones donde se requiera que los datos se relacionen con diferentes datos y en diferente forma, tambin son muy tiles en la representacin de expresiones binarias, arboles de bsqueda que hacen la las bsquedas de datos sean mas rpidas que en una bsqueda secuencial en una lista lineal M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Generar un archivo de texto, el cual contenga palabras en espaol y su correspondiente significado en ingles, organizado en dos columnas Subir el contenido del archivo en un rbol binario de bsqueda, organizado por la palabra en espaol Definir un applet el cual al momento de ser cargado, permita realizar de manera automtica y transparente la operacin anterior. El applet traductor deber permitir traducir cualquier palabra del espaol al ingles, deber permitir dar de alta nuevas palabras verificando que la palabra no este ya contenida en el diccionario Al finalizar el contenido del rbol ser nuevamente almacenado en un archivo de texto con el mismo formato que el original Deber utilizar la clase rbol definida en la prctica No. l8 de este manual. S24('(/3.+5 -.-;3,.3+5) Leer los fundamentos tericos expuestos en clase Ingeniera en Sistemas Computacionales
37 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. Consultar otras fuentes para establecer los parmetros de la implementacin de las operaciones bsicas sobre Arboles Binarios de bsqueda. Analizar los diagramas de flujo que se expusieron en clase. PRCTICA N" 20 N$%&'() Applet didctico ,ue muestre como !uncionan los algoritmos de ordenamiento nterno A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad Vl: Algortimos de Ordenamiento lnterno Tema: TODOS I/,'$-233.7/) En computacin y matemticas un +14$'.,%$ -( $'-(/+%.(/,$ es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relacin de orden, es decir, el resultado de salida ha de ser una permutacin o reordenamiento de la entrada que satisfaga la relacin de orden dada. Las relaciones de orden ms usadas son el orden numrico y el orden lexicogrfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de bsqueda y fusin) que requieren listas ordenadas para una ejecucin rpida. Tambin es til para poner datos en forma cannica y para generar resultados legibles por humanos O&6(,.0$) Demostrar como funcionan los algoritmos de ordenamiento interno en forma grfica. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Definir un applet o un Frame que contenga botones con cada uno de los mtodos de ordenamiento interno y un botn de grafica comparativa. Al presionar el botn se deber mostrar una animacin que muestre de manera grfica el como va ordenando los elementos dicho mtodo Al presionar el botn de <grafica comparativa> deber mostrar una grafica o histograma comparativo donde muestre el tiempo que tardo cada algoritmo en ordenar la misma muestra de datos. Los datos se generan de manera aleatoria y el usuario definir el tamao de la muestra mediante botones de radio o una lista desplegable. Ingeniera en Sistemas Computacionales
38 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. S24('(/3.+5 -.-;3,.3+5) Analizar los fundamentos tericos expuestos en clase Analizar cada uno de los algoritmos lnvestigar sobre el diseo de interfaz grafica en Java Discutir cual es el algoritmo mas efectivo y por qu. Ingeniera en Sistemas Computacionales
39 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 2# N$%&'() "rame didctico ,ue compare los m)todos de ordenamiento externo A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad Vll: Algortimos de Ordenamiento Externo Tema: TODOS I/,'$-233.7/) Ordenamiento externo es un trmino genrico para los algoritmos de ordenamiento que pueden manejar grandes cantidades de informacin. El ordenamiento externo se requiere cuando la informacin que se tiene que ordenar no cabe en la memoria principal de una computadora (tpicamente la RAM) y un tipo de memoria ms lenta (tpicamente un disco duro) tiene que utilizarse en el proceso O&6(,.0$) Mostar un comparativo de eficiencia de los algoritmos de ordenamiento externo en forma grfica. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Definir un Frame que permita ordenar dos archivos, previamente generados por los algortimos externos de mezcla directa y mezcla natural. Debera mostar una grafica comparativa donde imprima el tiempo que tardo cada mtodo en ordenar la misma muestra de datos El Frame deber permitir al usuario generar el archivo a ordenar con nmeros aleatorios y con un tamao que podr definir con botones de radio, chek boxes o listas deplegables. S24('(/3.+5 -.-;3,.3+5) Analizar los fundamentos tericos expuestos en clase Analizar cada uno de los algoritmos lnvestigar sobre el diseo de interfaz grafica en Java Discutir cual es el algoritmo mas efectivo y por qu. Ingeniera en Sistemas Computacionales
40 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 22 N$%&'() "rame didctico ,ue muestre el !uncionamiento y compare los m)todos de b&s,ueda secuencial y binario A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad Vlll: Algortimos de Busqueda Tema: Busqueda Secuencial y Binaria O&6(,.0$) Mostar un comparativo de eficiencia de los algoritmos de bsqueda secuencial y binaria I/,'$-233.7/) Un algoritmo de bsqueda es aquel que est diseado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema booleano de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir, si el elemento en cuestin pertenece o no a dicho conjunto, adems de su localizacin dentro de ste. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Definir un Frame que permita buscar un dato dado por el usuario en un conjunto de datos mediante el algoritmo de bsqueda secuencial o bsqueda binaria segn la eleccin del usuario y reportar el tiempo que tardo la bsqueda. Debera permitir generar un comparativo de ambas bsquedas. El Frame deber permitir al usuario generar la muestra de datos con nmeros aleatorios y con un tamao que podr definir con botones de radio, chek boxes o listas deplegables. S24('(/3.+5 -.-;3,.3+5) Analizar los fundamentos tericos expuestos en clase Analizar cada uno de los algoritmos lnvestigar sobre el diseo de interfaz grafica en Java Discutir cual es el algoritmo mas efectivo y por qu. Ingeniera en Sistemas Computacionales
41 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. PRCTICA N" 2< N$%&'() "rame ,ue permita reali%ar la b&s,ueda de un dato por medio de una tabla /as0 A*+',+-$ ./0$123'+-$ -(1 *'$4'+%+ -( (5,2-.$) Unidad Vlll: Algortimos de Busqueda Tema: Tablas Hash O&6(,.0$) Realizar la bsqueda de datos mediante las Tablas Hash I/,'$-233.7/) Una tabla hash o mapa hash es una estructura de datos que asocia llaves o claves con valores. La operacin principal que soporta de manera eficiente es la b&s,ueda: permite el acceso a los elementos (telfono y direccin, por ejemplo) almacenados a partir de una clave generada (usando el nombre o nmero de cuenta, por ejemplo). Funciona transformando la clave con una funcin hash en un 0as0, un nmero que la tabla hash utiliza para localizar el valor deseado. M+,('.+1 8 E92.*$) Computadora JDK l.6. JCreator Pro. JCreator Le NetBeans (u otro lDE para Java) M(,$-$1$4:+) Definir un frame que permita realizar la bsqueda de un dato mediante Tablas Hash El frame deber permitir generar de manera aleatoria la lista de datos a buscar de un tamao definido por el usuario. Al finar reportara el tiempo que tardo en realizar dicha bsqueda. S24('(/3.+5 -.-;3,.3+5) Analizar los fundamentos tericos expuestos en clase Analizar cada uno de los algoritmos lnvestigar sobre el diseo de interfaz grafica en Java Discutir cual es el algoritmo mas efectivo y por qu. Ingeniera en Sistemas Computacionales
42 MANUAL DE PRACTICAS DE ESTRUCTURA DE DATOS. BIBLIOGRA?A #.-E5,'23,2'+ -( D+,$5 Autor1 2ell Dalle 3 $usan #4 'illy Editorial1 Mc(ra5./ill 2.-E5,'23,2'+ -( D+,$5 (/ +0+ Autor1 Luis Joyanes Aguilar. Editorial1 McGraw-Hill. <.-P'$4'+%+3.7/ (/ +0+2. Autor1 Luis Joyanes Aguilar. Editorial1 Mc(ra5./ill 4.-E5,'23,2'+ -( -+,$5 (/ +0+ Autor1 Mar6 Allen 7eiss4 Editorial1 Addisson 7esley =.-C$%$ P'$4'+%+' (/ +0+2 Autor: Deitel y Deitel Editorial:Prentice- Hall 6.-E5,'23,2'+ -( D+,$5 8 +14$'.,%$5 Autor: Aho/Hopcroft/Ullman Editorial:Addison Wesley. >.-E5,'23,2'+ -( D+,$5 3$/ +0+ Autor: John Lewis / Joseph Chase Editorial:Addison Wesley. 8.-P'$4'+%+3.$/ (/ C@@ Autor: Luis Joyanes Aguilar Editorial:McGraw Hill Ingeniera en Sistemas Computacionales