¿Qué libro (s) y otros recursos recomendaría para que un principiante entienda las estructuras de datos y los algoritmos en C ++?

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.

Sugeriría Algoritmo en C ++ por Robert Sedgewick

Algoritmos en C ++, Partes 1-4: Fundamentos, Estructura de datos, Clasificación, Búsqueda, Tercera edición: Robert Sedgewick

Este libro en particular, Partes 1-4, representa la primera mitad esencial del trabajo completo de Sedgewick. Proporciona una amplia cobertura de estructuras de datos fundamentales y algoritmos para la clasificación, búsqueda y aplicaciones relacionadas. Aunque la esencia del libro se aplica a la programación en cualquier lenguaje, las implementaciones de Van Wyk y Sedgewick también explotan la coincidencia natural entre las clases de C ++ y las implementaciones de ADT.

Reflejos
– Cobertura ampliada de matrices, listas vinculadas, cadenas, árboles y otras estructuras de datos básicos.
– Mayor énfasis en tipos de datos abstractos (ADT), programación modular, programación orientada a objetos y clases C ++ que en ediciones anteriores
– Más de 100 algoritmos para ordenar, seleccionar, implementaciones de ADT de cola prioritaria e implementaciones de ADT (búsqueda) de tabla de símbolos
– Nuevas implementaciones de colas binomiales, clasificación de radios de múltiples vías, BST aleatorias, árboles de separación, listas de omisión, intentos de múltiples vías, árboles B, hashing extensible y mucho más.
– Mayor información cuantitativa sobre los algoritmos, que le proporciona una base para compararlos.
– Más de 1000 ejercicios nuevos para ayudarlo a aprender las propiedades de los algoritmos.

También existe la Parte 5 que cubre los algoritmos gráficos:

Algoritmos en C ++ Parte 5: Algoritmos de gráficos (3a edición) (Pt.5): Robert Sedgewick: 0785342361186

Lo que estás pidiendo son dos cosas diferentes. Al escribir programas, debe poder hacer 2 cosas. Lo primero es saber qué hacer, lo segundo es cómo hacerlo.

Las estructuras de datos y los algoritmos cumplen la primera parte, y para eso recomiendo Introducción a los algoritmos, por Cormen, Leiserson, Rivest y Stein. Los algoritmos allí están escritos en pseudocódigo, en lugar de cualquier lenguaje, y deberían darle una introducción decente a las estructuras de datos cuando realiza la parte de cómo.

El cómo requiere que escribas código usando un lenguaje de programación. Como recomendó C ++, sugeriría cualquier buen libro en C ++. Sin embargo, ese libro debería explicar bien los conceptos de Objetos y Punteros, de lo contrario, simplemente no vale la pena.

Para usar ambos, intente e implemente estructuras de datos en Introducción a los algoritmos en C ++ usando el libro de C ++ al que hace referencia. Una sugerencia adicional sería recorrer su código, verificando cómo funciona, incluso si proporciona los resultados correctos.

Introducción a los algoritmos CLRS “es el mejor libro para comprender las estructuras de datos y los algoritmos. Algunas personas lo llaman biblia de DS y Algo. También contiene código de ejemplo escrito en pseudocódigo. Pero se pueden convertir fácilmente al lenguaje de programación.

Si buscas preparación para la entrevista. Puede comenzar con “ Resolución de problemas en estructuras de datos y algoritmos ” escrito en varios lenguajes como C, C ++, Java, C #, Python, etc. Estos libros son fáciles de seguir y están escritos para el punto de vista de la entrevista . Además, estos libros tienen el último capítulo sobre Diseño de sistemas , que también se requiere en las entrevistas.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos con C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

Estructuras de datos y algoritmos en C ++
Michael T. Goodrich , Roberto Tamassia, David M. Mount

Los aspectos más destacados de este libro incluyen:

  • Revisión de las características básicas del lenguaje de programación C ++
  • Introducción al diseño orientado a objetos con C ++ y patrones de diseño.
  • Punto de vista orientado a objetos consistente en todo el libro
  • Cobertura completa de todas las estructuras de datos que se enseñan en un curso CS2 típico, incluidos vectores, listas, montones, tablas hash y árboles de búsqueda
  • Explicación detallada y visualización de algoritmos de clasificación.
  • Cobertura de algoritmos gráficos y algoritmos de coincidencia de patrones para cursos CS2 más avanzados
  • Justificaciones visuales (es decir, pruebas de imagen), que hacen que los argumentos matemáticos sean más comprensibles para los estudiantes, atrayendo a los estudiantes visuales
  • Motivación de conceptos algorítmicos con aplicaciones relacionadas con Internet, como navegadores web y motores de búsqueda.

Leí el Manual de diseño de algoritmos de Steven Skiena y sigo leyendo Introducción a los algoritmos de Cormen.

Ambos son libros realmente buenos, pero sentí que el manual de diseño de algoritmos es mejor si te estás preparando para una programación competitiva o entrevistas. El libro también tiene preguntas al final de cada capítulo sobre algunas aplicaciones prácticas. También hay una cosa llamada War Story al final de cada tema. Le informa sobre cómo Skiena y sus estudiantes usaron cierta estructura de datos para mejorar la complejidad (tiempo y espacio).

La introducción a los algoritmos pone un gran foco de prueba. Sin embargo, comprender las pruebas es ciertamente algo bueno, pero a veces es difícil si no tienes una base matemática adecuada.

SOLO IR A LOS SIGUIENTES LIBROS QUE PUEDE ENTENDER DSC ++ muy fácilmente …

LIBROS DE TEXTO

1. Estructuras de datos, algoritmos y aplicaciones en C ++, Sartaj Sahani, 2ª edición.
2. Estructuras de datos y algoritmos en C ++, Michael T.Goodrich, R, Tamassia y D.Mount, wiley Student Edition, 7ma edición, John Wiley and Sons.

Libros de referencia

1. Análisis de estructuras de datos y algoritmos en C ++ por Mark Allen Weiss.
2. Estructuras de datos y algoritmos en C ++, tercera edición, Adam Drozdek, Cengage Learning.

Creo que depende de tus habilidades e intereses.

  1. Si le gustan las pruebas y desea establecer una buena base para el análisis de algoritmos, por supuesto, debe dominar bien el lenguaje de programación C ++, entonces Introducción a los algoritmos puede ser adecuado para usted.
  2. Si no está familiarizado con C ++ y desea implementaciones de código en diferentes estructuras de datos, le recomendaría estructuras de datos y análisis de algoritmos en C ++ por Mark Allen Weiss.

Tenenbaum
Estructuras de datos con C: Aaron M. Tenenbaum: 9780131997462: Amazon.com: Libros

Te enseña los aspectos matemáticos de las estructuras de datos.

Para los algoritmos, nada mejor que Cormen.
Introducción a los algoritmos

Si quiere decir que implementa estas estructuras de datos usted mismo, me gustaría recomendarle este libro: Estructuras de datos y análisis de algoritmos.
Cubre estructuras de datos comunes, y no como CLRS cubre casi todos los algoritmos de programación. Contiene menos contenido. Es para principiantes.
:).

Para los algoritmos, CLRS no tiene coincidencia, sin importar el idioma que conozca, y hay muchos buenos libros para estructuras de datos. Las estructuras de datos de yashwant kanetkar, series de shaum y aaron son algunos de los buenos. 🙂

Sí, Data Structures, el libro de Tenebaum es el mejor.
Contiene complejidades temporales perfectamente descritas.
Pero si eres principiante, primero ve por Let Us C de Yashwant Kanetkar.

También puede consultar los videos aquí: desde http://academicearth.org

Estructuras de datos y análisis de algoritmos en C ++

Mark A. Weiss

Comience con Introducción a los algoritmos: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: 9780262033848: Amazon.com: Libros

Es un excelente libro con explicaciones paso a paso de algoritmos con ejercicios de nivel principiante a avanzado.

Otro libro que vale la pena considerar (pdf gratuito disponible): El Manual de Diseño de Algoritmo, Steven Skiena ( http://sist.sysu.edu.cn/~isslxm/ …)

Normalmente, cualquier libro que proporcione solo la sintaxis del lenguaje es una forma muy necesaria tanto para principiantes como para expertos, ambos con conocimientos básicos de programación, y anteriormente utilicé Thinking in C ++ de K&R para el mismo propósito mientras aprendía C ++. También se proporciona el código para los ejercicios.
Otra forma en la que se compara el lenguaje con otros para mostrar cada diferencia en la sintaxis y el diseño con varios ejemplos y hay preguntas siempre dirigidas también es realmente útil really Verifique las anotaciones de C ++ y está específicamente dirigido a los programadores de C que prueban C ++.

Obtenga cualquiera de las últimas versiones en cualquier forma y pruebe su suerte 🙂

Si conoces C ++ bastante bien entonces …
1. Estructura de datos y resolución de problemas por Mark Allen Weiss
2. Algoritmos en C ++ por Robert Sedgewick
Y si aprender C ++ también es recomendable, entonces
primero ” Programación en C ++” de “Al Stevens” seguido de los libros anteriores.

El libro que prefiero es

amazon: https://www.amazon.in/gp/product

y otro es:

Amazonas

https://www.amazon.in/gp/product

Amazon.com: Estructuras de datos clásicas en C ++ (9780201508895): Timothy A. Budd: Libros
Si bien el libro de Weiss era el recomendado para el curso cuando lo tomé, mi biblioteca se había quedado sin eso (¡otra vez!). Y me encontré con esto. Durante la duración del curso también tuve la oportunidad de estudiar del libro de Weiss, pero encontré el libro de Budd mejor, más claro de los dos.

Introducción a los algoritmos por Cormen et. Alabama. es un libro estándar de algoritmos introductorios, y es utilizado por muchas universidades, incluida la mía. Tiene una cobertura bastante buena y es muy accesible.
Y cualquier cosa de Robert Sedgewick también es buena.

“estructuras de datos de c ++ por nell dale” es un libro muy bueno para el curso de estructura de datos,
Puede comprobar aquí
Libros electrónicos gratuitos: estructura de datos