
Data Structures and Algorithms in Java, 6th Edition
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
- Editorial
- Wiley
- Año
- 2014
- Páginas
- ~736
- Nivel
- Básico
De qué trata
La sexta edición de Data Structures and Algorithms in Java, escrita por Michael T. Goodrich, Roberto Tamassia y Michael H. Goldwasser, es un pilar formativo universitario para cursos de nivelación y desarrollo en algoritmia (curso CS2). Esta edición renueva y moderniza íntegramente su repertorio de código para sacar partido a Java 7, incorporando tipos genéricos parametrizados, interfaces limpias y el operador diamante (<>). El texto se dirige a estudiantes universitarios de ingeniería informática y desarrolladores principiantes que conocen los rudimentos de la sintaxis y control de flujo en Java y requieren dominar la ingeniería orientada a objetos aplicada a estructuras de datos y el análisis formal de eficiencia de algoritmos.
El contenido establece desde el inicio buenas prácticas de ingeniería de software mediante principios de abstracción, diseño por contratos, interfaces Java, jerarquías de clases y herramientas de análisis matemático de algoritmos (notaciones Big-O, Omega y Theta, cotas inferiores y coste amortizado). Todo el código está vertebrado en torno al paquete didáctico net.datastructures, abordando listas enlazadas (simples, dobles y circulares), arreglos dinámicos, pilas, colas, deques y listas posicionales con iteradores. Cubre extensamente árboles binarios y generales, colas de prioridad con montículos (heaps) adaptables, mapas asociativos, tablas hash con direccionamiento abierto y encadenamiento, y mapas ordenados con skip lists. Destaca por su detallada formulación de árboles de búsqueda balanceados (árboles AVL, árboles Splay, árboles multi-camino 2-4 y árboles Rojo-Negro), algoritmos de ordenación y selección (MergeSort, QuickSort determinista y aleatorizado, RadixSort, QuickSelect), búsqueda de patrones en texto y programación dinámica (algoritmos KMP, Boyer-Moore, subsecuencia común más larga), grafos (recorridos DFS y BFS, ordenamiento topológico, Dijkstra, Prim-Jarník, Kruskal), así como gestión de memoria, recolección de basura y árboles B para almacenamiento persistente.
El texto ofrece un equilibrio excepcional entre rigor deductivo y código Java ejecutable, complementado por una colección pedagógica de 794 ejercicios organizados en tres niveles: preguntas directas de refuerzo (R), problemas de creatividad y análisis matemático (C) y retos prácticos de programación e implementación (P). Constituye una referencia formativa que prepara con solidez tanto para asignaturas universitarias avanzadas como para entrevistas técnicas de ingeniería de software. No aborda características funcionales añadidas en versiones posteriores como Streams o expresiones lambda de Java 8, ni concurrencia multitarea, priorizando la pureza del diseño clásico de estructuras de datos. Es un texto canónico y de máxima vigencia metodológica.
- Java
- Estructuras de datos
- Tipos genéricos
- Notación Big-O
- net.datastructures
- Árboles binarios
- Árboles Rojo-Negro
- Tablas hash
- Heaps
- Grafos
- Programación dinámica
- Algoritmos de ordenación
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

