Actualmente estoy leyendo un libro sobre estructuras de datos y algoritmos. ¿Cuáles son algunos recursos que puedo usar para practicar la implementación?

No estoy seguro de si está buscando una plataforma donde pueda compilar y ejecutar su código en línea. Algo como HackerRank o topcoder puede ser.

Aunque ambos recursos anteriores son increíbles para practicar algoritmos, la mejor manera que sugeriría para practicar DS y también es configurar su propio entorno de desarrollo en su máquina local. Incluso antes de eso, elige un lenguaje de programación. Personalmente, sugiero Java, ya que es más simple y puedes aprenderlo relativamente rápido sin tener que poner tu energía detrás de aprender el lenguaje en sí mismo: comprender los punteros / direcciones de C ++, etc. podría tomar más tiempo. Más adelante puede hacer lo mismo en C ++.

Una vez que tenga esta configuración, comience a ver cómo estas estructuras de datos se ponen en una forma concreta (clases / objetos, etc.) utilizando los siguientes recursos. (¡No es una lista exhaustiva en absoluto!)

  • Algoritmos, 4ta Edición
  • Estructuras de datos abiertos (en Java)
  • Estructuras de datos y análisis de algoritmos
  • GeeksforGeeks | Un portal informático para geeks
  • Videos simples y problemas de práctica para aprender programación

Comprende y escríbelo tú mismo. Creo que está bien mirar las implementaciones y escribirlas: “cuando las estás haciendo por primera vez y mientras las entiendas” . Una vez que comprenda cómo funcionan las cosas, es más probable que presente sus propias modificaciones a esas implementaciones. Los libros anteriores tienen mucho código. No es necesario que haya un solo libro en el que comprenda claramente las implementaciones para todas las estructuras de datos. ¡Para eso puedes saltar a otro recurso!

Además, mantengo un repositorio de Github donde sigo escribiendo estructuras / algoritmos de datos a medida que los aprendo. Siéntase libre de echar un vistazo si eso es algo en lo que estaría interesado. ¡Las implementaciones son bastante simples y podrían ser algo de lo que pueda beneficiarse!

Enlace: nkher / lib-java

Feliz aprendizaje !

Hay bastantes portales en línea, pero leetcode.com es especialmente útil. Hay muchos problemas de programación y puede enviar su solución y verificarla para todos los casos de prueba posibles y también ver cómo se clasifica entre otros en términos de velocidad de su algoritmo.
Además, puede elegir el lenguaje de programación que prefiera.
Espero que ayude