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