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 …exibir mais conteúdo…
Isso significa que a variável valor pode assumir apenas valores inteiros. Atribuir à variável valor o número 45.3 resultaria em um erro já que um valor com ponto decimal (número real) não pode ser atribuído a uma variável declarada do tipo inteiro. Os tipos inteiro, real, caractere e lógico são tipos primitivos de dados. Outros tipos de dados mais complexos podem ser criados a partir desses tipos primitivos, por exemplo: registros, vetores e matrizes. Além de elementos como estruturas de controle e variáveis, um programa pode empregar diferentes tipos de estruturas de dados. Neste livro serão estudadas estruturas de dados como listas, pilhas, filas e grafos. Na escolha do tipo de estrutura de dados para determinada aplicação, o programador deve considerar alguns elementos importantes como:
• utilização da estrutura de dados; • métodos de manipulação da estrutura de dados; • tipo de alocação.
A utilização está relacionada ao tipo de informação que a estrutura armazenará, por exemplo, uma lista de alunos com nome, telefone, endereço e número de matrícula. Para essa lista de alunos os nomes devem ser apresentados em ordem crescente e decrescente. Neste caso deve-se escolher a estrutura de dados que melhor represente essas características. A estrutura de dados estuda as possíveis alternativas que um programador pode ter na hora de escolher a estrutura de dados adequada para determinada necessidade,