Estruturas de dados em pascal
Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1
1.1 1.2
2
Variáveis Globais e Locais 1 Passagem de Parâmetro (por valor × por referência) 1 Vetores 7 Matrizes 8 2.2.1 Matrizes Especiais 9 2.2.2 Matrizes Esparsas 12
Vetores e Matrizes 7
2.1 2.2
3 4
Alocação de Memória Estática × Dinâmica 17 Listas 19
4.1 4.2
Listas Seqüenciais 19 Listas Encadeadas 22 4.2.1 Listas Simplesmente Encadeadas 25 4.2.2 Listas Encadeadas com Header 55 4.2.3 Listas Duplamente Encadeadas 74 Pilhas (Stack) 99 5.1.1 Pilhas Seqüenciais 100 5.1.2 Pilhas Encadeadas 102
5
Estruturas Lineares com Disciplina de Acesso 99
5.1
viii
Estruturas de Dados
5.2
5.3
6
Filas (Queue) 105 5.2.1 Filas Seqüenciais 105 5.2.2 Filas Encadeadas 107 Deque (“Double-Ended Queue”) 111 5.3.1 Deque Seqüencial 111 Lista Circular Seqüencial 113 Lista Circular Encadeada 117 Conceitos 124 Como Representar Grafos? 125 7.2.1 Declaração do Grafo Representado por Lista de Adjacência 127 7.2.2 Implementação dos Procedimentos Conecta e Desconecta Utilizando Representação de Grafos por Lista de Adjacência 128 Como Percorrer Grafos? 136 7.3.1 Percurso em Amplitude (Breadth First Search — BFS) 137 7.3.2 Percurso em Profundidade (Depth First Search — DFS) 137 7.3.3 Encontrar um Caminho entre Dois Vértices 137
Lista/Fila Circular 113
6.1 6.2
7
Grafos 123
7.1 7.2
7.3
Considerações Finais 141 Bibliografia 143 A Exercícios em Código Pascal 145
A.1 A.2 A.3 A.4 A.5
B
Exercícios de Listas Simplesmente Encadeadas 145 Exercícios de Listas Duplamente Encadeadas 150 Exercícios de Listas Simplesmente Encadeadas com Header 153 Exercícios de Lista Circular 156 Exercícios de Pilhas e Filas 157 Exercícios de Listas Simplesmente Encadeadas 161 Exercícios de Listas Duplamente Encadeadas 166 Exercícios de Listas Simplesmente Encadeadas com Header 169 Exercícios de Lista Circular 172 Exercícios de Pilhas e Filas 172
Exercícios em Código C 161
B.1 B.2 B.3 B.4 B.5