
Data Structures and Algorithms with Python
Kent Lee, Steve Hubbard
- Editorial
- Springer
- Año
- 2015
- Páginas
- ~369
- Nivel
- Básico
De qué trata
Manual universitario enfocado en la comprensión profunda de las estructuras de datos y el análisis de algoritmos utilizando Python 3 como lenguaje de implementación. Escrito por Kent D. Lee y Steve Hubbard dentro de la serie Undergraduate Topics in Computer Science de Springer, está pensado para estudiantes de ciencias de la computación que cursan su segunda materia de programación (CS2), así como para desarrolladores autodidactas con conocimientos elementales de programación o provenientes de lenguajes orientados a objetos como Java o C++ que buscan asentar las bases algorítmicas formales.
El texto aborda la eficiencia algorítmica y la notación Big-O mediante análisis empírico y temporal, adentrándose en la recursión y en el diseño interno de colecciones. Detalla la construcción desde cero de estructuras de datos secuenciales como listas dinámicas (recreando PyList), listas enlazadas simples y dobles, pilas y colas. Explora a fondo las tablas hash para implementar conjuntos y mapas con técnicas de memoización, árboles de sintaxis abstracta (AST), árboles binarios de búsqueda (BST), árboles balanceados AVL y Splay, y estructuras B-Tree orientadas a bases de datos relacionales. También cubre montículos (heaps), colas de prioridad, filtros de Bloom, algoritmos de grafos como Dijkstra y Kruskal, y búsqueda heurística en laberintos mediante algoritmos BFS y DFS, apoyándose en la biblioteca estándar de Python y en Tkinter y turtle para la visualización gráfica.
A lo largo de los capítulos se construyen utilidades e interfaces interactivas, como una aplicación de dibujo vectorial con Tkinter y turtle, un resolvedor de tableros de Sudoku mediante backtracking y mapas de restricciones, un evaluador de expresiones matemáticas basado en árboles AST y la simulación de índices de bases de datos con árboles B. Su mayor mérito radica en desmitificar cómo funcionan internamente los tipos de datos nativos de Python bajo el capó en CPython, facilitando un aprendizaje práctico respaldado por código funcional. Deja fuera el tratamiento de algoritmos concurrentes o distribuidos, reservando la programación paralela para revisiones posteriores. Conviene dominar nociones básicas de orientación a objetos en Python antes de sumergirse en su contenido.
- Python 3
- Estructuras de datos
- Notación Big-O
- Listas enlazadas
- Tablas hash
- Árboles binarios
- Árboles AVL
- B-Trees
- Algoritmo de Dijkstra
- Backtracking
- Tkinter
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Aplicación de dibujo vectorial con Tkinter
Herramienta gráfica interactiva de dibujo y trazado sobre lienzo desarrollada con Tkinter y el módulo turtle para consolidar la programación orientada a objetos en Python.
Resolvedor de Sudokus
Programa que resuelve tableros de Sudoku aplicando algoritmos de backtracking combinados con estructuras de conjuntos y mapas para la verificación de restricciones lógicas.
Evaluador de expresiones aritméticas con AST
Intérprete que analiza expresiones matemáticas, construye un árbol de sintaxis abstracta y evalúa las operaciones mediante recorridos recursivos de los nodos.

