
Data Structures and Algorithms Using Python
Rance D. Necaise
- Editorial
- Wiley
- Año
- 2010
- Páginas
- ~520
- Nivel
- Básico
De qué trata
Manual universitario escrito por Rance D. Necaise que aborda de manera formal la ingeniería del software, los tipos abstractos de datos y el análisis algorítmico empleando Python 3 como lenguaje base de implementación. Está orientado a estudiantes de ciencias de la computación y programadores que ya dominan la sintaxis elemental y el flujo de control en Python y desean comprender en profundidad el diseño interno y el rendimiento de las estructuras de datos, en lugar de utilizarlas como cajas negras.
El libro enseña a modelar e implementar desde cero Tipos Abstractos de Datos (ADT) mediante la programación orientada a objetos de Python. Explica la construcción de estructuras lineales y multidimensionales (arreglos unidimensionales y matrices implementados con el módulo de bajo nivel ctypes), vectores dinámicos redimensionables, bolsas (bags), conjuntos y mapas. Cubre el análisis asintótico con la notación Big-O y el coste amortizado, algoritmos de búsqueda (lineal y binaria) y ordenación (burbuja, selección, inserción, mezcla y quicksort), estructuras enlazadas (listas simples, dobles, circulares y multienlazadas), pilas, colas de espera, colas de prioridad, tablas hash con diversas estrategias de resolución de colisiones, funciones recursivas, árboles binarios y árboles de búsqueda binaria (BST).
Cada bloque temático culmina con el desarrollo de una aplicación práctica completa que demuestra la utilidad del ADT estudiado, desde simulaciones celulares y de colas hasta optimizaciones de memoria y algoritmos de retroceso (backtracking). El texto destaca por su rigor conceptual y su claridad didáctica paso a paso, prescindiendo deliberadamente de librerías avanzadas como NumPy para que el lector construya cada mecanismo con código puro. Resulta una base académica excelente antes de adentrarse en algoritmia avanzada o ciencia de datos.
- Python 3
- Estructuras de datos
- Tipos Abstractos de Datos (ADT)
- Notación Big-O
- Algoritmos de ordenación
- Listas enlazadas
- Pilas y colas
- Tablas hash
- Árboles binarios
- Recursión
- Backtracking
- ctypes
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Simulador del Juego de la Vida de Conway
Implementación del autómata celular de John Conway que calcula y muestra la evolución de generaciones de células usando una estructura ADT de matriz bidimensional en Python 3.
Simulador de colas de facturación aérea
Simulación de eventos discretos que modela el flujo y los tiempos de espera de pasajeros en mostradores de una aerolínea utilizando colas FIFO y colas de prioridad.
Solucionador de laberintos por backtracking
Programa que explora y encuentra caminos de salida válidos en una cuadrícula mediante algoritmos de retroceso respaldados por una estructura de pila personalizada.
Gestor de matrices dispersas
Estructura de almacenamiento eficiente para matrices numéricas con gran cantidad de ceros, implementada desde cero con arreglos de listas multienlazadas.

