INF1010 – Estrutura de dados Avançadas Turma 3WA (2020.1)

Moodle: Clique aqui para o EAD

Aulas são ministradas na PUC-Rio 15h-17h Segundas e Quartas no Lab-A (Labgrad) zoom.

Objetivo da Disciplina:

  • Apresentar as técnicas básicas de organização de dados, possibilitando a construção de algoritmos eficientes em memória primária ou secundária.
  • Praticar a implementação de estruturas de dados e a avaliação da eficiência de algoritmos complexos
  • Ao final do curso o aluno deve ser capaz de desenvolver programas de computador eficazes e eficientes para a solução de problemas complexos.

Material das Aulas:

Leitura Complementar:

Ementa do Curso:

  • 1) Parte 1 – Revisão
    • Ponteiros, Alocação, Recursão, Estruturas
    • Vetores de Ponteiros, Busca em Vetores, Módulos, TAD
    • Listas Encadeadas
    • Pilha
    • Fila
    • Complexidade de Algoritmos
  • 2) Parte 2 – Árvores
    • Árvores n-árias
    • Árvores Binárias
    • Árvores Binárias de Busca
    • Árvores AVL
    • Árvores rubro-negras
    • Árvores B
    • Árvores 2-3
  •   3) Parte 3 – Hash e Heap
    • Tabelas de Dispersão (hashtables)
    • Filas de prioridades, Heaps e Heapsort
    • Conjuntos, Mapas de bits
    • Partições dinâmicas (União e Busca)
  • 4) Parte 4 – Grafos
    • Introdução à Grafos
    • Percursos, Busca em Profundidade e em Largura
    • Busca A*
    • Busca Dijkstra
    • Árvore Geradora Mínima Kruskal

Cronograma:

DataPlanejado
04/marApresentação da Disciplina, Revisão, Ponteiros, Alocação, Recursão, Estruturas
09/marVetorPonteiros, BuscaVetor, Modulos, TAD
11/marListas Encadeadas
16/marPilha
18/marFila
23/marÁrvores
25/marComplexidade de Algoritmos
30/marÁrvores Binárias; Árvores Binárias de Busca
01/abrÁrvores AVL
06/abrRevisão - Entrega de trabalho 1
08/abrP1
13/abrÁrvores  N-árias; Árvores 2-3
15/abrÁrvores vermelho-negras
20/abrFeriado/Recesso (Recesso de São Jorge)
22/abrÁrvores B
27/abrÁrvores B (de ordem 3)
29/abrTabelas Hash
04/maiintrodução a heaps de prioridades
06/maiheaps e heapsort
11/maiConjuntos, Mapas de bits
13/maiPartições dinâmicas
18/maiRevisão - Entrega de trabalho 2
20/maiP2
25/maiIntrodução à Grafo, percursos, Busca em Profundidade e em Largura
27/maiLab Grafos
01/junA*
03/junLab Grafos
08/junDijkstra
10/junLab Grafos
15/junKruskal
17/junLab Grafos
22/junRevisão - Entrega de trabalho 3
24/junP3
29/jun(Não haverá aula)
01/julP4
06/jul(Não haverá aula)

Bibliografia:

  • Celes, W., Cerqueira, R., Rangel, J.L., Introdução a Estruturas de Dados – Uma introdução com técnicas de programação em C, Ed. Campus, 2004.
  • Horowitz. E.; Sahni, S.; Anderson-Freed, S. Fundamentals of Data Structures in C, 2nd edition. Silicon Press, 2008.
  • Kruse, R.; Tondo, C.; Leung, B.; Mogalla, S.; Data Structures and Program Design in C, 2nd edition. Pearson, 1996.
  • Moraes, C.; Estruturas De Dados E Algoritmos: Uma Abordagem Didática, Ed. Futura, 2003
  • Rocha, A.; Estruturas De Dados E Algoritmos Em C, 3ª Edição, Ed. FCA, 2014
  • Edelweiss, N.; Galante, R.; Estruturas de Dados, Ed. Bookman, 1ª edição, 2008
  • Kernighan, B.W., Ritchie, D.M., C – A Linguagem de Programação – Padrão ANSI, Ed. Campus, 1989.