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. 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 - 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 binárias: caminhamentos e ABP. Teórica
12 Laboratório - Árvores binárias: caminhamentos e ABP. Prática
13 Preparação Prova 1. Teórica
14 Prova 1 Avaliação

Área II – Estruturas de Dados Avançadas

Aula Conteúdo Tipo Material Código
15a Árvores binárias de pesquisa balanceadas. Teórica
15b Introdução ao C++ para programadores C. Teórica
16 Laboratório - Árvores binárias de pesquisa balanceadas. Prática
17 Heaps e filas de prioridade. Heap Sort. Teórica
18 Tabelas hash: funções de hash. Teórica
19 Tabelas hash: tratamento de colisão. Teórica
20 Árvores Trie, Patrícia e TST. Teórica
21 Ordenação usando divisão e conquista: Merge Sort e Quick Sort (parte 1). Teórica
22 Ordenação usando divisão e conquista: Merge Sort e Quick Sort (parte 2). Teórica
23 Entrega Parcial do Trabalho Final. Avaliação
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

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