
Data Structures and Algorithms in C++, 2nd Edition
David M. Mount, Michael T. Goodrich, Roberto Tamassia
- Editorial
- Wiley
- Año
- 2011
- Páginas
- ~744
- Nivel
- Básico
De qué trata
La segunda edición de Data Structures and Algorithms in C++, desarrollada por David M. Mount, Michael T. Goodrich y Roberto Tamassia, es un manual de referencia universitario para el curso formativo de estructuras de datos y algoritmos (CS2). La obra aborda el diseño, análisis matemático e implementación práctica de componentes de software haciendo uso de C++ estándar y su paradigma de programación orientada a objetos y genérica mediante plantillas (templates). Está pensada para estudiantes de ciencias de la computación, ingeniería informática y programadores con formación previa en sintaxis básica de C o C++ que buscan asentar las bases del diseño robusto de software y la eficiencia computacional.
El libro comienza con un repaso exhaustivo de la orientación a objetos en C++, cubriendo clases, herencia, polimorfismo, gestión de excepciones, sobrecarga de operadores y patrones de diseño, para luego establecer las herramientas analíticas de complejidad temporal y espacial mediante notaciones asintóticas (Big-O, Omega, Theta) y análisis amortizado. Introduce la formalización de tipos de datos abstractos (ADTs) y sus implementaciones concretas para arreglos, listas enlazadas simples, dobles y circulares, pilas, colas, deques e iteradores. Progresa hacia estructuras jerárquicas y no lineales como árboles binarios y generales, colas de prioridad basadas en montículos (heaps), tablas hash, mapas, diccionarios y skip lists, complementados por árboles binarios de búsqueda auto-balanceables (árboles AVL y árboles Splay). Asimismo, examina algoritmos de ordenación (MergeSort, QuickSort, ordenamiento en tiempo lineal), procesamiento de cadenas (algoritmos Boyer-Moore y Knuth-Morris-Pratt), programación dinámica, algoritmos en grafos (DFS, BFS, Dijkstra, Prim-Jarník, Kruskal) y secciones ampliadas en esta edición sobre gestión de memoria secundaria, recolección de basura y árboles B.
El aprendizaje combina rigurosas demostraciones formales de complejidad con implementaciones de clases en C++ limpias y reutilizables, apoyándose en cientos de ejercicios clasificados metódicamente al cierre de cada capítulo en refuerzo de conceptos (Reinforcement), retos analíticos de diseño (Creativity) y asignaciones de programación (Projects). Aporta una disciplina arquitectónica invaluable para estructurar tipos de datos sin depender mecánicamente de la Standard Template Library (STL). Deja fuera estándares modernos del lenguaje como C++14 en adelante (punteros inteligentes avanzados, semántica de movimiento o programación concurrente), enfocándose exclusivamente en los principios algorítmicos fundamentales. Resulta una lectura académica imprescindible para adquirir solvencia técnica en C++.
- C++
- Estructuras de datos
- Notación Big-O
- Plantillas (Templates)
- Listas enlazadas
- Árboles AVL
- Tablas hash
- Colas de prioridad
- Algoritmos de ordenación
- Grafos
- Programación dinámica
- Árboles B
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

