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 Download
9a Pilhas. Teórica Abrir Download
9b Filas. Teórica Abrir Download
9c Deques. Teórica Abrir Download
10 Laboratório - Pilhas, filas e deques. Prática — —
11 Árvores, árvores binárias e caminhamentos. Teórica Abrir Download
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: AVL e Splay Tree. Teórica Abrir Download
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 (C++ procedural). Teórica Abrir Download
18 Heaps e Filas de Prioridades. HeapSort. Teórica Abrir Download
19 Tabelas Hash: Funções de Hash. Teórica Abrir —
20 Tabelas Hash: Tratamento de Colisão. Teórica Abrir Download
21 Ordenação usando Divisão e Conquista: MergeSort e QuickSort. Teórica Abrir —
22 Árvores Trie, Patrícia e TST. Teórica Abrir —
23 B-Tree e B+-Tree. Teórica Abrir —
24 Arquivos Invertidos. Teórica Abrir —
25 Ordenação de strings: CountingSort e Radix Sort. Teórica Abrir —
26 Compressão de Dados: RLE, Huffman e LZW. Teórica Abrir —
27 Preparação Prova 2. Teórica — —
28 Prova 2. Avaliação — —
29 Apresentação Trabalho Final (1). Avaliação — —
30 Apresentação Trabalho Final (2). 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