Aulas de Estruturas de Dados

Education should prepare people to face new challenges;
that's what makes education different from training.
In computing, that means knowing
your basic algorithms, data structures, system issues, etc.,
and the languages needed to apply that knowledge.
It also means
having the high-level skills to analyse a system
and to experiment with alternative solutions to problems.

— Bjarne Stroustrup

Estas aulas foram descaradamente copiadas do livro de Sedgewick e Wayne.

  1. Introdução
  2. Biblioteca de programas
  3. Tipos abstratos de dados (ADTs)
  4. Pilhas
  5. Filas
  6. Sacos
  7. Desempenho amortizado e gráficos de média corrida
  8. Filas priorizadas (PQs)
  9. Cadeias de caracteres (strings)
  10. Tabelas de símbolos (TSs)
  11. TS implementada com busca binária
  12. Operações adicionais em TSs
  13. Árvores binárias de busca (BSTs)
  14. BSTs: operações adicionais
  15. Árvores 2-3
  16. BSTs rubro-negras
  17. Hashing (tabelas de dispersão)
  18. Aplicações de TSs
  19. Alfabetos (classe Alphabet)
  20. TSs de strings
  21. Tries (árvores digitais)
  22. Observações sobre invariantes
  23. Busca de substring
  24. Algoritmo KMP para busca de substring
  25. Algoritmo de Rabin-Karp para busca de substring
  26. Entrada e saída binárias
  27. Compressão de dados
  28. Algoritmo de Huffman para compressão de dados
  29. Árvores B (B-trees)