Menu
Coddy logo textTech
Ruta de aprendizaje

Estructuras de datos y algoritmos en C++

La STL es esta ruta en forma de biblioteca: std::vector, std::unordered_map, std::priority_queue y std::set son un array dinámico, una tabla hash, un heap y un árbol balanceado. Construye cada uno en C++ con clases y punteros, y después usa la STL sabiendo lo que cuesta cada llamada. La manipulación de bits se enseña directamente en C++. Gratis, en tu navegador y con un certificado en la mayoría de los cursos.

394 lecciones228 retos702 preguntas de quiz

DSA en C++, paso a paso

39 cursos394 lecciones228 retos702 preguntas de quiz

Cada paso es un conjunto de cursos que ya existen en Coddy, y cada botón Empezar los abre en C++. Los dos cursos que todavía no se enseñan en C++ aparecen después de los pasos.

  1. 1
    Empezar este pasoEmpezarPila, cola, árbol binario, tabla hash y lista enlazada, cada una construida desde cero en C++ con clases y punteros, y usada después para resolver problemas. Al terminar, std::stack, std::queue y std::unordered_map son estructuras que ya has escrito.Empezar
  2. 2
    Empezar este pasoEmpezarLista doblemente enlazada, heaps y colas de prioridad, tries, grafos y el árbol AVL autobalanceado. std::priority_queue es un max-heap por defecto, mientras que los heaps de Python y Java son min-heaps; cuando ya has escrito uno, invertirlo con std::greater es evidente.Empezar
  3. 3
    Empezar este pasoEmpezarBubble, selection, insertion, merge, quick, heap, counting y radix sort, escritos en C++ y vistos en el visualizador. std::sort suele ser un introsort, un quicksort que recurre a heapsort cuando lo necesita, y std::stable_sort, un merge sort; este paso es lo que da sentido a esas elecciones.Empezar
  4. 4
    Empezar este pasoEmpezarRetos de recursión y manipulación de bits, ambos en C++, el lenguaje para el que está escrito el curso de manipulación de bits. La programación dinámica se enseña en Python y aparece después de los pasos; sus tablas de memoización se traducen directamente a std::vector.Empezar
  5. 5
    Empezar este pasoEmpezarBúsqueda en anchura y en profundidad, Dijkstra, Bellman-Ford, ordenamiento topológico, Kruskal y Prim en C++, sobre el grafo que construiste en el paso dos. La cola de prioridad de Dijkstra es std::priority_queue con std::greater: el heap del paso dos, en forma de biblioteca.Empezar
  6. 6
Lo que obtienes
Todo lo que usarás para aprender a programar

Learn by Doing

Write real code, query databases, build websites, and master AI prompts. Our interactive lessons cover every skill modern developers need.

playground.js
Code Editor
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
Test #1test Case Success icon
Test #2test Case Success icon
Test #3test Case Failure icon
Input
"Alex"
Output
"Hello, Coddy! Alex"

Build Your Coding Streak

Stay consistent and watch your progress grow! Track your daily coding habit, protect your streak with freeze days, and earn rewards for showing up every day.

12 days streak

Return tomorrow to keep your streak!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

Double or Nothing

Day 5 of 7

fire Freeze icon

Streak Freeze

2 left

Code Anywhere, Anytime

Take your coding journey on the go! No setup, no downloads - just open and start coding. Available on iOS, Android and Web with 4.9 star ratings.

Python
7Streak
250Score
5Energy
Variables
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
CONTINUE
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
Journey
Goals
Leaderboard
Profile
4.9
StarStarStarStarStar
Rating

You're Not Alone in This

Compete on global leaderboards, invite friends to earn rewards, and celebrate each other's wins. Coding is better with friends!

Challenger League
Challenger LeagueTop 7 advance
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconPromotion zoneleaderboard Arrow Up icon

Every way to learn

Read, listen, test yourself, ask the AI, or look up anything you've already covered. Every lesson meets you where you are.

Intro to Variables
Audio

A variable is a named container that stores a value you can reference later in your program.

In Python, you create one by writing the name, an equals sign, then the value you want to store.

The value can change over time - reassigning the name simply points it to a new value.

1xSarah

Prove Your Skills

Earn certificates for every course you complete. Add them to your LinkedIn profile and resume to showcase your coding expertise to employers.

CoddyCertificate of Completion
This certifies thatJohn Doehas successfully completed
python iconPython Fundamentals
Verified
DateJan 2026
LinkedInAdd to LinkedIn

Por qué aprender DSA en C++ con Coddy

  • El lenguaje de la programación competitiva. La mayoría de los programadores competitivos escriben en C++, por su velocidad y la STL, y se acepta en casi cualquier entrevista de programación. Aprender DSA en C++ es aprender el dialecto en el que se escriben los concursos.
  • Punteros a la vista. En C++, una lista enlazada son nodos y punteros, una rotación AVL es un puñado de movimientos de punteros y un destructor libera la memoria que reservaste. Aprendes las estructuras tal como las guarda la máquina y luego dejas que la STL lo haga por ti.
  • La manipulación de bits, en su propio lenguaje. El curso de manipulación de bits de la ruta se enseña en C++, así que aquí no es un desvío: máscaras, desplazamientos y trucos de bits llegan en el lenguaje que ya estás escribiendo. Solo la programación dinámica y la serie de entrevistas en Python no están en C++: se enseñan en Python y aparecen después de los pasos.
  • Evaluado como en una entrevista. Cada lección termina en un reto de C++ comprobado con casos de prueba y, cuando uno falla, Bugsy lee tu código y te empuja hacia el arreglo sin darte la respuesta. Un certificado gratuito en la mayoría de los cursos, verificable cada uno en su propia URL.

Preguntas frecuentes sobre DSA en C++

¿Es C++ bueno para estructuras de datos y algoritmos?

Es la opción más común en la programación competitiva y una opción sólida para entrevistas: rápido, con una biblioteca estándar que cubre casi todas las estructuras que necesitas. El precio es más código y más formas de equivocarse, desde punteros colgantes hasta iteradores invalidados. Construir primero las estructuras tú mismo, como hace esta ruta, es la forma de que dejen de sorprenderte.

¿Qué contenedores de la STL corresponden a qué estructuras de datos?

std::vector es un array dinámico, std::stack y std::queue son por defecto adaptadores sobre std::deque, std::list es una lista doblemente enlazada, std::unordered_map y std::unordered_set son tablas hash, std::priority_queue es un heap binario (un max-heap por defecto, a diferencia de los de Python y Java), y std::map y std::set son árboles binarios de búsqueda balanceados, en la práctica árboles rojo-negro. No hay contenedor de trie ni de grafo; esos los escribes tú.

¿Debo implementar yo mismo las estructuras de datos o usar directamente la STL?

Las dos cosas, en ese orden. Implementa cada estructura una vez, para saber por qué las búsquedas en std::unordered_map son de tiempo constante en promedio y por qué std::map mantiene sus claves ordenadas, y a partir de ahí usa la STL en todas partes. En un concurso o en una entrevista nadie espera un árbol rojo-negro escrito a mano; esperan que elijas el contenedor adecuado y conozcas su coste.

¿C++ o Python para DSA?

C++ si piensas hacer programación competitiva o entrevistas donde se espera que lo uses; Python si quieres el camino más corto de la idea al código que funciona. Los algoritmos son idénticos, así que mucha gente aprende en uno y compite en el otro. Todos los cursos de estructuras de datos de esta ruta se enseñan en los dos.

¿Qué cursos de esta ruta no se enseñan en C++?

Dos: la programación dinámica y la serie de entrevistas en Python, ambas enseñadas en Python. Aparecen después de los pasos, con un enlace que las abre en Python. Las ideas se trasladan sin cambios: en C++, una tabla de memoización es un std::vector o un std::unordered_map.

¿Necesito saber C++ antes de empezar esta ruta?

Como mínimo, clases, punteros, referencias y std::vector. Si son nuevos para ti, el curso de C++ de Coddy los cubre primero, gratis, y esta ruta continúa donde él termina.

Otras rutas de aprendizaje

Los mismos cursos, ordenados para otro rol. El progreso se conserva: un curso terminado en una ruta cuenta en todas las rutas que lo incluyen.

Todas las rutas de aprendizaje
Coddy programming languages illustration

Empieza la ruta de Estructuras y algoritmos gratis

Empezar a aprender