Trilha de aprendizado

Estruturas de dados e algoritmos em C/C++

Pilhas, filas, tabelas hash, busca binária e merge sort, cada um seguido de um desafio.

8 lições · 11 desafios

Começar a trilha →
  1. Lição 1 desafio Lista ligada simples em C e C++ Nesta lição, você vai construir, percorrer e liberar uma lista ligada simples em C e C++.
  2. Lição 1 desafio Estrutura de dados pilha (stack) em C e C++ Nesta lição, você vai implementar as operações de uma pilha, no esquema último a entrar, primeiro a sair, com um array fixo em C e std::stack em C++.
  3. Lição 1 desafio Fila circular (circular queue) em C e C++ Nesta lição, você vai implementar uma fila, no esquema primeiro a entrar, primeiro a sair, com um array circular em C e std::queue em C++.
  4. Lição 2 desafios Tabela hash (hash table) em C e C++ Nesta lição, você vai contar quantas vezes cada palavra aparece com uma tabela hash feita à mão em C e com std::unordered_map em C++.
  5. Lição 1 desafio Busca binária em C e C++ Nesta lição, você vai buscar em um array ordenado em tempo O(log n) com um laço escrito à mão em C e com std::lower_bound em C++.
  6. Lição 1 desafio Ordenação por intercalação (merge sort) em C e C++ Nesta lição, você vai implementar o merge sort com a estratégia de dividir para conquistar, que sempre roda em O(n log n).
  7. Lição 2 desafios Recursão e pilha de chamadas em C e C++ Nesta lição, você vai calcular o fatorial com uma função recursiva e entender o caso base e o custo de memória da recursão.
  8. Lição 2 desafios Contêineres e algoritmos da STL em C++ Nesta lição, você vai comparar laços escritos à mão para processar arrays em C com a combinação de algoritmos prontos da biblioteca padrão de C++.