Este es un recurso accesible sobre estructuras de datos, con implementaciones de muestra y grandes explicaciones:
CPSC 223: Estructuras de datos y técnicas de programación.
El curso fue impartido por el profesor James Aspnes, Director de Estudios de Pregrado del Departamento de Informática de Yale.
Tiene algunas notas fantásticas que ha creado y publicado en línea (es prácticamente un libro de texto), así como algunas tareas interesantes que te hacen probar y aplicar varias estructuras de datos / técnicas para resolver diferentes problemas.
Vista HTML:
Notas sobre estructuras de datos y técnicas de programación (CPSC 223, primavera de 2015)
- ¿Cuál es exactamente la forma correcta de estudiar si realmente desea aprender el material?
- ¿Hay una manera fácil de aprender stop motion?
- ¿Cómo empezar a aprender arduino? ¿Hay proyectos para principiantes?
- ¿Cuál es la mejor manera de aprender chino?
- ¿Cómo aprendo algo por mi cuenta?
Vista de PDF: http://www.cs.yale.edu/homes/asp…
Algunos temas cubiertos incluyen los siguientes:
Notación asintótica
Pilas
Colas
Deques
Listas enlazadas
Programación Dinámica / Memorización
Tablas de hash
Árboles AVL
Arboles extendidos
Árboles binarios de búsqueda
Muchísimo
Arboles aumentados
Gráficos / Búsqueda en profundidad / Búsqueda en anchura
Algoritmos aleatorios / estructuras de datos (listas de saltos)
Varios algoritmos de clasificación (ordenación rápida, ordenación de radixes, ordenamiento por fusión, ordenación de pila, etc.).
Recursion
Las notas también tienen una cobertura fantástica del lenguaje de programación C. Así es como aprendí a programar en C.
Creo que C es un gran lenguaje para aprender Estructura de datos / Algoritmos, porque tienes que tener mucho cuidado con la administración de memoria. En general, también es un lenguaje que todo científico informático debe conocer.
Asegúrese de hacer realmente los conjuntos de problemas! La implementación de estructuras de datos es la forma en que mejorará en la comprensión de sus usos. Es importante poder elegir las estructuras de datos adecuadas para un problema determinado y diseñar las suyas mediante la combinación de elementos de otras estructuras de datos.
Para que quede claro, este no es un curso de algoritmos, ya que se centra principalmente en las estructuras de datos. El departamento ofrece diseño y análisis de algoritmos (CPSC 365) por separado, pero este recurso debería ser muy útil para la mayoría de las entrevistas de programación, ya que aprenderá sobre la notación asintótica y los tiempos de ejecución de la mayoría de los algoritmos / operaciones relacionadas con las estructuras de datos. en el curso. Además, no se deje intimidar por la longitud! Si sabe C, la parte de las notas sobre Estructuras de datos tiene solo 180 páginas LaTeX dispersas, con ejemplos de código también. Una gran parte es la revisión del lenguaje C. ¡Buena suerte!
* Todo el crédito se otorga a James Aspnes, quien creó estos materiales y los publicó en su sitio web.