Estruturas de Dados

INF01203 - Instituto de Informática - UFRGS

Prof. Dr. Dennis Giovani Balreira


Bem-vindo ao material de apoio da disciplina Estruturas de Dados.

Estas páginas servem como um livro-texto complementar às aulas presenciais. O objetivo é reunir os principais conceitos da disciplina, exemplos em linguagem C, exercícios e referências para consulta durante o semestre.

As páginas serão disponibilizadas gradualmente conforme o andamento das aulas.


Cronograma da disciplina

Área I – Estruturas de Dados Básicas

Aula Conteúdo Tipo Material Código
0 Informações administrativas da disciplina (apresentação, avaliação, cronograma, bibliografia). Administrativa Abrir —
1a Introdução à disciplina. Fundamentos. Revisão de linguagem C. Teórica Abrir —
1b Alocação dinâmica de memória e ponteiros. Teórica Abrir —
2a Introdução à complexidade de algoritmos. Teórica Abrir —
2b Tipos abstratos de dados (TAD). Teórica Abrir —
2c Lista linear: definição e contiguidade física. Teórica Abrir Download
3 Laboratório - TAD, alocação dinâmica de memória e lista contígua. Prática — —
4 Listas simplesmente encadeadas. Teórica Abrir Download
5 Laboratório - Listas simplesmente encadeadas. Prática — —
6a Listas duplamente encadeadas. Teórica Abrir Download
6b Listas circulares. Teórica Abrir —
7 Laboratório - Listas duplamente encadeadas. Prática — —
8 Algoritmos de ordenação: Insertion Sort, Shell Sort. Teórica Abrir —
9a Pilhas. Teórica Abrir Download
9b Filas. Teórica Abrir Download
9c Deques. Teórica Abrir —
10 Laboratório - Pilhas, filas e deques. Prática — —
11 Árvores, árvores binárias e caminhamentos. Teórica Abrir —
12 Árvores Binárias de Pesquisa (ABP). Teórica Abrir Download
13 Laboratório - Árvores Binárias de Pesquisa (ABP). Prática — —
14 Árvores Binárias de Pesquisa Balanceadas. Teórica Abrir —
15 Revisão Prova 1 + Simulado. Teórica Abrir Simulado  |  Gabarito
16 Prova 1 Avaliação — —

Área II – Estruturas de Dados Avançadas

Aula Conteúdo Tipo Material Código
17 Incrementando C: introdução ao C++ para programadores C. Teórica Abrir —
18 Heaps e filas de prioridade. Heap Sort. Teórica — —
19 Tabelas hash: funções de hash. Teórica — —
20 Tabelas hash: tratamento de colisão. Teórica — —
21 Árvores Trie, Patrícia e TST. Teórica — —
22 Ordenação usando divisão e conquista: Merge Sort e Quick Sort. Teórica — —
23 Laboratório - Ordenação (entrega parcial do Trabalho Final). Prática — —
24 B-Tree e B+-Tree. Teórica — —
25 Arquivos invertidos. Teórica — —
26 Ordenação de strings: Counting Sort e Radix Sort. Teórica — —
27 Compressão de dados: RLE, Huffman e LZW. Teórica — —
28 Preparação Prova 2. Teórica — —
29 Prova 2 Avaliação — —
30 Apresentação do Trabalho Final. Avaliação — —
— Prova de Recuperação Avaliação — —

Material Extra

Tópico Material
Revisão de Linguagem C (Parte 1) Abrir
Revisão de Linguagem C (Parte 2) Abrir
Laboratório: Revisão de Linguagem C Abrir
C Avançado (matrizes dinâmicas, ponteiros genéricos, ponteiros para função, Makefile) Abrir
Conceitos de Linguagens de Programação (pilha × heap, valor × ponteiro, tipagem) Abrir
Listas Recursivas Abrir
Lista Linear por Contiguidade Física (Dinâmica) Abrir

Como utilizar este material

  • Leia a página correspondente antes ou após a aula presencial.
  • Execute todos os exemplos em linguagem C apresentados ao longo do texto.
  • Resolva os exercícios propostos ao final de cada aula.
  • Utilize este material como referência durante a implementação dos trabalhos práticos.

Última atualização: 2026