Estructuras de datos con Java: un enfoque práctico
 
 

Bienvenido

 

"Estructuras de datos con Java: un enfoque práctico es un libro escrito por la Dra. Amparo López Gaona, profesora Titular A de la Facultad de Ciencias de la Universidad Nacional Autónoma de México.

En este sitio, podrás encontrar prácticas de apoyo para la obra "Estructuras de datos con Java: un enfoque práctico", el cual se compone de archivos fuente con código en java.
 

 

Introducción

 

Los programadores frecuentemente se encuentran con la necesidad de escribir programas que manipulan una colección de datos del mismo tipo. Con los conocimientos básicos de programación inmediatamente se piensa que la solución para trabajar con estos datos es utilizar un arreglo, con ventajas y desventajas de estos. Si bien es cierto que así podría ser, no siempre es conveniente utilizar arreglos debido a que en general el acceso a los datos n o es por posición, así que se debe buscar otra organización adecuada para los datos térmidados de facilidad de manejo de estos por parte del programador y en térmidos de rapidez de ejecución de las tareas relativas a dicho manejo.

Las estructuras de datos tienen como objetivo facilitar la organiazación, con el propósito de que la manipulación de ellos sea eficiente. Por eficiencia se entiende la habilidad de encontrar y manipular los datos con el mínimo de recursos tales como tiempo de proceso y espacio en memoria. No es lo mismo hacer un programa para manipular decenas de datos que para miles de ellos.

Conocer, y sobre todo, utilizar las estructuras de datos es esencial para escribir programas que utilicen eficientemente los recursos de la computadora. Existen diversos tipos de estructuras de datos, las hay desde las muy generales y ampliamente utilizadas hasta otras muy especializadas para problemas particulares. La selección de la estructura de datos apropiada permite utilizar la que sea más eficiente para el problema específico que se desea resolver, con lo cual se optimiza el rendimiento del programa.

En este libro se presentan las estructuras de datos básicas: listas, pilas, colas, árboles, colas de prioridad y tablas de dispersión. A pesar de ser tan importantes no son difíciles ni de comprender ni de implementar. Sin embargo, no es suficiente saber cómo se implementa cierta estructura de datos particular, también es necesario ser capaz de determinar, dado un problema, cuál es la más apropiada. Se asume que el lector tiene conocimientos básicos de la programación orientada a objetos utilizando el lenguaje de programación Java, en caso de no tenerlos se recomienda el libro "Introducción al desarrollo de programas con JAVA[Gaon11]".

Aunque la mayoría de las estructuras de datos presentadas se encuentran como clases de biblioteca de Java es conveniente conocer cómo están implementadas para presentar algunos otros temas relacionados con ellas, como son el manejo de referencias y análisis de algoritmos. Cabe aclarar, que la interfaz de las estructuras presentadas en este texto no coinciden totalmente con las proporcionadas por Java. En este texto, cada estructura de datos se presenta como un tipo abstracto de datos con el objeto de ilustrar la independencia entre interfaz e implementaciones y así poder utilizarlas en diversas aplicaciones sin importar la implementación de la misma, sólo conociendo la forma de utilizarla.

El orden en que se presentan las diferentes estructuras de datos es el utilizado en los cursos de estructuras de datos. Sin embargo, si el lector está interesado en una estructura particular puede estudiarla sin necesidad del material anterior, excepto los dos primeros capítulos, en los que se presentan las bases de los siguientes. En cada capítulo se presenta una estructura de datos como un tipo de datos (TAD); para cada uno se plantean problemas cuya solución requiere esté TAD. Finalmente se presenta una implementación del TAD analizando para cada método la complejidad del mismo.

Las estructuras de datos que se presentan en este documento y los capítulos en los que están, se enumeran a continuación:

 

Página elaborada como parte del Proyecto

PAPIME PE103511