MC202E - Estruturas de Dados
Essa página contém links para slides e vídeos de MC202 - Estruturas de Dados.
Os slides sofrem alterações com o passar do tempo e o link é sempre para a versão mais recente. Assim, os slides mostrados nos vídeos podem não condizer com os slides atuais. Além disso, dependendo do semestre, a ordem de algumas aulas pode mudar em relação a ordem dos vídeos no YouTube. O site será mantido na ordem que as aulas serão ensinadas no respectivo semestre.
Correções nos links e sugestões de outros conteúdos são mais que bem-vindas!
Indíce
- Aulas
- Unidade 1 - Sobre a Disciplina
- Unidade 2 - Curso de C - Parte 1
- Unidade 3 - Curso de C - Parte 2
- Unidade 4 - Curso de C - Parte 3
- Unidade 5 - Curso de C - Parte 4
- Unidade 6 - Curso de C - Parte 5
- Unidade 7 - Curso de C - Parte 6
- Unidade 8 - Recursão
- Unidade 9 - Noções de Eficiência de Algoritmos
- Unidade 10 - Vetores
- Unidade 11 - Listas Ligadas
- Unidade 12 - Variações de Listas Ligadas
- Unidade 13 - Pilha e Fila
- Unidade 14 - Aplicações de Pilha
- Unidade 15 - Árvores Binárias
- Unidade 16 - Árvores Binárias de Busca
- Unidade 17 - Árvores Rubro-Negras
- Unidade 18 - Filas de Prioridade e Heap
- Unidade 19 - Ordenação e Heapsort
- Unidade 20 - Mergesort e Quicksort
- Unidade 21 - Ordenação em Tempo Linear
- Unidade 22 - Hashing
- Unidade 23 - Grafos (representação)
- Unidade 24 - Grafos (percurso)
- Unidade 25 - Grafos (algoritmos)
- Unidade 26 - Backtracking
- Unidade 27 - Árvores B
- Unidade 28 - Escolhendo uma ED
- Tutoriais
- Links Interessantes
- Bibliografia
Aulas
Unidade 1 - Sobre a Disciplina
Unidade 2 - Curso de C - Parte 1
Unidade 3 - Curso de C - Parte 2
Unidade 4 - Curso de C - Parte 3
Unidade 5 - Curso de C - Parte 4
- Slides (handout)
- Vídeo
- Material relacionado:
- Wikipedia - Abstract Data Type
- Capítulo 4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 6 - Curso de C - Parte 5
Unidade 7 - Curso de C - Parte 6
Unidade 8 - Recursão
Unidade 9 - Noções de Eficiência de Algoritmos
- Slides (handout)
- Vídeo
- Material relacionado
- Capítulo 2 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulos 1 e 2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
- Avançado: Capítulo 3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 10 - Vetores
Unidade 11 - Listas Ligadas
- Slides (handout)
- Vídeo
- Visualgo - Lista Ligada
- Material relacionado
- Seção 3.3 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 12 - Variações de Listas Ligadas
- Slides (handout)
- Vídeo
- Visualgo - Lista Ligada
- What’s a Linked List, Anyway? [Part 1]
- What’s a Linked List, Anyway? [Part 2]
- Material relacionado
- Seção 3.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 13 - Pilha e Fila
- Slides (handout)
- Vídeo
- Stacks and Overflows
- To Queue Or Not To Queue
- Material relacionado
- Seções 4.1 a 4.6 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 14 - Aplicações de Pilha
- Slides (handout)
- Vídeo
- Material relacionado
- Seções 4.1 a 4.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 15 - Árvores Binárias
- Slides (handout)
- Vídeo - Parte 1
- Vídeo - Parte 2
- How To Not Be Stumped By Trees
- Material relacionado
- Capítulo 12 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 12 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 16 - Árvores Binárias de Busca
- Slides (handout)
- Vídeo
- Leaf It Up To Binary Trees
- Material relacionado
- Capítulo 12 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 12 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 17 - Árvores Rubro-Negras
- Slides (handout)
- Vídeo
- Painting Nodes Black With Red-Black Trees
- Material relacionado
- Capítulo 3 de “Algorithms - Fourth Edition” - R. Sedgewick
Unidade 18 - Filas de Prioridade e Heap
- Slides (handout)
- Vídeo
- Visualgo - Heap binário
- Learning to Love Heaps
- Material relacionado
- Capítulo 9 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 6 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 19 - Ordenação e Heapsort
- Slides (handout)
- Visualgo - Ordenação
- Visualgo - Heap binário
- Learning to Love Heaps
- Sorting Out The Basics Behind Sorting Algorithms
- Exponentially Easy Selection Sort
- Bubbling Up With Bubble Sorts
- Inching Towards Insertion Sort
- Heapify All The Things With Heap Sort
- Algoritmos de Ordenação e Dança:
- Material relacionado
- Capítulo 6 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 9 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
- Capítulo 6 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 20 - Mergesort e Quicksort
- Slides (handout)
- Vídeo
- Visualgo - Ordenação
- Making Sense of Merge Sort [Part 1]
- Making Sense of Merge Sort [Part 2]
- Pivoting To Understand Quicksort [Part 1]
- Pivoting To Understand Quicksort [Part 2]
- Algoritmos de Ordenação e Dança:
- Material relacionado
- Capítulo 7 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 7 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
- Capítulo 8 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 2.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 21 - Ordenação em Tempo Linear
- Slides (handout)
- Vídeo
- Counting Linearly With Counting Sort
- Getting To The Root Of Sorting With Radix Sort
Unidade 22 - Hashing
- Slides (handout)
- Vídeo
- Taking Hash Tables Off The Shelf
- Hashing Out Hash Functions
- Material relacionado
- Capítulo 14 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 11 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 23 - Grafos (representação)
- Slides (handout)
- Vídeo
- From Theory To Practice: Representing Graphs
- Material relacionado
- Capítulo 17 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Seção 3.7 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 22.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 24 - Grafos (percurso)
- Slides (handout)
- Vídeo
- Deep Dive Through A Graph: DFS Traversal
- Going Broad In A Graph: BFS Traversal
- Material relacionado
- Capítulo 18 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Seção 5.8 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seções 22.2 e 22.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 25 - Grafos (algoritmos)
- Slides (handout)
- Vídeo
- Spinning Around In Cycles With Directed Acyclic Graphs
- Finding The Shortest Path, With A Little Help From Dijkstra
- Material relacionado:
- Seções 19.1 a 19.6, 21.1 e 21.2 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Capítulo 14 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seções 22.4 e 24.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 26 - Backtracking
- Slides (handout)
- Vídeo
- Material relacionado:
- Capítulo 12 de “Algoritmos em linguagem C” - Paulo Feofiloff
Unidade 27 - Árvores B
- Slides (handout)
- Vídeo
- Busying Oneself With B-Trees
- Material relacionado:
- Capítulo 18 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 28 - Escolhendo uma ED
Tutoriais
Links Interessantes
- Visualgo - Animações de algoritmos e estruturas de dados
- Curso Algorithms do KhanAcademy
- An ongoing series of nonverbal algorithm assembly instructions
Bibliografia
A bibliografia principal para o curso é o livro “Algorithms in C - Third Edition” de R. Sedgewick. Outro livro interessante é “Introduction to Algorithms - Third Edition” de Cormen, Leiserson, Rivest e Stein. Outros livros podem ser encontrados no Plano de Desenvolvimento da Disciplina.