Cómo mejorar mis estructuras de datos y algoritmo desde el nivel básico

Si quieres saber la respuesta en una línea. Su “Práctica práctica y práctica” que puede mejorarlo en la estructura de datos y el dominio del algoritmo. Puedo decir esto por mi experiencia porque, incluso hace unos meses, solía seguir buscando aquí y allá algún libro de magia o cualquier opinión o cualquier sitio que pueda ser un experto de la noche a la mañana en este dominio. Pero eso de ninguna manera va a suceder.
Comencé a aprender la estructura de datos y el algoritmo hace 6 meses. Después de convencerme de que no va a entrar en mi cabeza hasta que empiezo a tomarlo en serio y no hay una poción mágica para ponerlo en mi cabeza.
Entonces comencé a aprender de la web. Estaba usando c ++ para codificar los problemas, así que me aseguré de entender muy bien los punteros y, literalmente, puedo jugar con ellos. Una vez que estuvo bajo mi control. Empecé a resolver muchos problemas de listas vinculadas. Me ayudó mucho a hacer una imagen en mi cabeza de cómo viajo por los nodos. Si surge un cierto problema, lo que tengo que hacer para eso.
Lentamente, me ayudó a llevarme a los árboles y a los agarres porque será una acumulación de eso. Sitios como http://geeksforgeeks.org y http://www.bogotobogo.com/Algori… fueron realmente útiles para mí. Muchos tutoriales del sitio topcoder y codechef también son muy útiles. Una vez que tenga en sus manos casi cosas básicas de algoritmos y estructuras de datos como listas enlazadas, líneas binarias, gráficos, programación dinámica, algunos algoritmos importantes y resuelto bastantes preguntas, entonces realmente preferiría leer el libro de Narshima Karumanchi (Tructura de datos y algoritmos). Esto realmente será una revelación, ya que no solo le brinda la solución directa al problema, sino que le permite pensar en un problema de muchas maneras diferentes, lo que es realmente útil.
Una vez que piense que ahora está bastante cómodo, resuelva y participe en concursos de codificación de sitios como http://codechef.com. Al principio, ni siquiera entendía las preguntas en este sitio competitivo, pero después de mucha paciencia y lucha continua, finalmente comencé a resolver las preguntas.
Ahora he comenzado a buscar algoritmos de aprendizaje automático, lo que en sí mismo es muy divertido. Si alguna vez piensas en aprenderlo, hay muchos cursos disponibles en Coursera y son realmente buenos.
Espero que mis experiencias con la estructura de datos y el algoritmo me ayuden. Por favor comente y avíseme si alguien quiere compartir más de sus experiencias para que yo pueda aprender más.

Ante todo,
Intente desarrollar algún programa de matriz y puntero. Comprenda las diferencias básicas entre ellos

Luego,
Comprender la diferencia entre estructuras de datos lineales y no lineales.

Entonces ve por
Matriz, pila, cola, lista enlazada, gráfico y toda su operación. Por ejemplo, si consideró Queue, entonces sus operaciones son Enqueue y Dequeue.

También comprenda su uso en informática, por ejemplo, si consideró Stack, su uso / aplicación en informática es la Torre de Hanoi (ToI), etc.

PD: Algoritmos de estructuras de datos, por ejemplo, Push and Pop for Stack, Comprenda su uso y trabaje en papel. e intente implementar el mismo algoritmo con la matriz y el puntero.