
C# Data Structures and Algorithms, 2nd Edition
Marcin Jamro
- Editorial
- Packt
- Año
- 2024
- Páginas
- ~465
- Nivel
- Intermedio
De qué trata
Guía práctica y actualizada que enseña cómo implementar y aprovechar estructuras de datos y algoritmos eficientes en el ecosistema moderno de C# y .NET (actualizado para C# 12 y .NET 8). Escrito por Marcin Jamro y publicado por Packt en su segunda edición de 2024, el libro está orientado a desarrolladores C# de nivel intermedio que desean escribir código optimizado, escalable y limpio, conociendo tanto las colecciones nativas de la Base Class Library (.NET BCL) como los detalles internos de construir estructuras a medida desde cero.
El temario repasa los fundamentos del sistema de tipos en C# (tipos por valor y referencia, structs, records, tuplas y tipos anulables) y el cálculo de complejidad algorítmica (Big-O). Continúa con colecciones lineales como arreglos unidimensionales, multidimensionales y dentados (jagged arrays), ordenamientos (burbuja, selección, inserción, quicksort, mergesort, heapsort), variantes de listas (List<T>, LinkedList<T>), pilas (Stack<T>), colas (Queue<T>) y la clase moderna PriorityQueue<TElement, TPriority>. En estructuras asociativas y no lineales, profundiza en tablas de dispersión y conjuntos (Dictionary<TKey, TValue>, HashSet<T>, SortedSet<T>), variantes de árboles (árboles binarios de búsqueda BST, árboles AVL, árboles rojo-negro) y grafos (recorridos BFS y DFS, coloreado, camino más corto con Dijkstra y árboles de expansión mínima con Kruskal y Prim).
En su sección práctica, el libro aterriza la teoría implementando proyectos y retos lógicos concretos, como la Torre de Hanoi, un solucionador automático de Sudoku y la generación gráfica de fractales recursivos. Su gran valor añadido respecto a los textos puramente académicos es que conecta cada estructura teórica con las clases reales de .NET, enseñando cuándo reutilizar componentes existentes y cuándo implementar estructuras especializadas para maximizar el rendimiento. No incluye demostraciones matemáticas extensas ni ejercicios teóricos de examen, concentrándose directamente en la aplicación profesional de la algoritmia.
- C# 12
- .NET 8
- Estructuras de datos
- Algoritmos
- Colecciones genéricas
- Árboles binarios
- Grafos
- Algoritmo de Dijkstra
- Backtracking
- Recursión
- PriorityQueue
- Complejidad Big-O
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Solucionador de Sudoku
Aplicación en C# que resuelve tableros de Sudoku mediante algoritmos de vuelta atrás (backtracking), evaluando de forma recursiva restricciones de filas, columnas y cuadrículas.
Resolución de la Torre de Hanoi
Programa que implementa y visualiza la transferencia secuencial óptima de discos entre varillas utilizando llamadas recursivas y estructuras de pila.
Generador de fractales
Herramienta gráfica que dibuja patrones geométricos complejos y autosimilares aprovechando la recursión matemática y el renderizado en .NET.

