Si realmente es un principiante y quiere aprender estructuras de datos a través de C ++, le recomiendo que estudie las estructuras y algoritmos de datos de Sams Teach Yourself en 24 horas: Robert Lafore: 9780672316333: Amazon.com: Libros. Es un libro que dice enseñarle DS en 24 horas, lo cual realmente dudo, pero si le da más tiempo que 24 horas (por lo menos 2 semanas), realmente fortalecerá sus fundamentos de DS. No estoy diciendo que leer este libro lo haga maestro de la estructura de datos o lo acercará incluso a lograr ese objetivo. o para ese propósito, tiene Introducción a los algoritmos: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros y el arte de la programación de computadoras, Volúmenes 1-4 Conjunto en caja: Donald E. Knuth: 9780321751041: Amazon.com: Libros. Pero este libro le dará la confianza que necesitará para enfrentar estos dos libros. Simplemente estudie este libro una vez y escriba todos los programas que tenga. No tiene muchos ejercicios (solo uno por capítulo), pero el código que figura en el libro para cada estructura de datos básica (listas vinculadas, pilas, colas, BST) se proporciona con detalles impecables. Este libro también enseña la agregación, es decir, el uso de objetos de múltiples clases para crear un objeto que necesita. Es un nuevo concepto que aprendí mientras aprendía de este libro y me parece más útil y fácil de seguir que la herencia.
Sin embargo, mientras aprende DS, asegúrese de aprender también los matices de punteros y matrices. Parecen inocentes, pero son reales en el cuello cuando intentas una gimnasia complicada en C ++. Sé esto porque estoy sufriendo debido a esto. Lectura del capítulo 4 de Algoritmos + Estructuras de datos = Programas (serie Prentice-Hall en computación automática): Niklaus Wirth: 9780130224187: Amazon.com: los libros deberían proporcionarle suficientes antecedentes conceptuales para recoger punteros como variables y comenzar a usarlos con considerable facilitar.
- ¿Qué estructuras de datos C ++ simples debería aprender para la programación competitiva además de un mapa?
- ¿Cómo definirías la ordenación rápida en pocas palabras?
- ¿Cuáles son las ventajas y desventajas de la búsqueda A * y el algoritmo de Dijkstra? ¿Cuándo se debe usar cada uno?
- ¿Qué estrategia emplearías para vencer a un algoritmo de computadora jugando póquer matemáticamente perfecto?
- Algoritmos: ¿Cómo encuentro un elemento en una secuencia que sea más pequeño que mi número en la secuencia, a la izquierda de mi número y a la derecha de todos esos elementos?