Algoritmos e Estruturas de Dados em C++
Algoritmos e Estruturas de Dados em C++
Resumo:
O livro «Algoritmos e Estruturas de Dados em C++» é um guia prático completo que abrange todos os tópicos essenciais para o domínio da linguagem C++ no nível de desenvolvedor pleno e acima. O material é apresentado considerando os padrões modernos C++17 e C++20, tornando o livro relevante para o desenvolvimento profissional.
Sobre o que é este livro
Você estudará sequencialmente as estruturas de dados fundamentais e avançadas:
- Estruturas lineares: arrays dinâmicos (std::vector), listas encadeadas (simplesmente e duplamente encadeadas), pilhas e filas, incluindo std::queue e std::stack.
- Árvores e grafos: árvores binárias de busca, árvores AVL, árvores rubro-negras, percursos (BFS, DFS), algoritmos de Dijkstra, Bellman-Ford, Floyd-Warshall.
- Tabelas hash: implementação, resolução de colisões, std::unordered_map e std::unordered_set.
- Algoritmos de ordenação e busca: ordenação rápida, por intercalação, heap sort, busca binária, busca por interpolação.
- Programação dinâmica: problema da mochila, maior subsequência comum, distância de Levenshtein.
- Recursos modernos do C++: ponteiros inteligentes, semântica de movimento, expressões lambda, corrotinas (coroutines), ranges.
Para quem é este livro
- Desenvolvedores C++ iniciantes que desejam sistematizar seus conhecimentos sobre algoritmos.
- Estudantes de áreas técnicas que se preparam para entrevistas ou olimpíadas de programação.
- Programadores em atividade que desejam aprender técnicas avançadas de otimização de código e gerenciamento de memória.
O que você aprenderá
- Como escolher a estrutura de dados ideal para um problema específico (notação Big O, análise amortizada).
- Como implementar seus próprios contêineres do zero e como usar corretamente a STL.
- Como escrever código eficiente, seguro e legível considerando as particularidades do C++ (RAII, exceções, templates).
- Como resolver problemas típicos de entrevistas: desde inverter uma lista até encontrar o caminho mais curto em um grafo.
Cada capítulo contém exemplos de código que podem ser executados imediatamente e exercícios práticos com análise de soluções. O livro será um auxiliar confiável tanto para autoaprendizagem quanto para preparação para entrevistas técnicas.