Listas lineares

Propaganda
5/18/2012
Programação de Computadores II
TCC‐00.174
Prof.: Leandro A. F. Fernandes
www.ic.uff.br/~laffernandes
Conteúdo: Listas Lineares
Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage
com contribuições do prof. Leandro A. F. Fernandes
Estrutura de Dados
Introdução
Uma estrutura de dados armazena dados na
memória do computador a fim de permitir o
acesso eficiente dos mesmos.
2012.1
Programação de Computadores II
2
1
5/18/2012
Estrutura de Dados
Introdução
Uma estrutura de dados bem projetada permite a
manipulação eficiente, em tempo e em espaço, dos
dados armazenados através de operações específicas.
2012.1
Programação de Computadores II
3
Listas Lineares
Introdução
Listas Lineares: São de fácil manipulação.
Agrupam informações referentes a um conjunto de
elementos que se relacionam entre si
2012.1
Programação de Computadores II
4
2
5/18/2012
Listas Lineares
Definição
Uma lista linear é um conjunto de n elementos
x1, x2, ..., xn,
cuja propriedade estrutural baseia‐se nas posições
relativas de seus elementos.
2012.1
Programação de Computadores II
5
Listas Lineares
Definição
Uma lista linear é um conjunto de n elementos
x1, x2, ..., xn,
cuja propriedade estrutural baseia‐se nas posições
relativas de seus elementos.
Supondo n > 0, temos:
 x0 é o primeiro elemento
 para 0 < k < n:
xk é precedido por xk−1 e seguido por xk+1
 xn é o último elemento.
2012.1
Programação de Computadores II
6
3
5/18/2012
Listas Lineares
Operações
Para manipular listas lineares, precisamos
disponibilizar operações de: Busca, Inclusão, Remoção.
2012.1
Programação de Computadores II
7
Listas Lineares
Operações
Para manipular listas lineares, precisamos
disponibilizar operações de: Busca, Inclusão, Remoção.
Casos particulares …
1. Insersão e remoção em um único extremo: Pilha.
2. Insersão e remoção em extremos distintos: Fila.
2012.1
Programação de Computadores II
8
4
5/18/2012
Listas Lineares
Alocação
Ao desenvolver uma implementação para listas
lineares devemos levar em conta como podemos
armazena‐lá no computador.
Opções:
Sequencial ou Encadeada
Aula de hoje: Implementação Sequencial.
2012.1
Programação de Computadores II
9
Listas Lineares
Alocação Sequencial
A forma mais natural de armazenar uma lista linear
consiste em armazenar seus elementos em células de
memória consecutivas.
Suponha que
cada célula tem endereço ε e ocupa k bytes:
2012.1
Programação de Computadores II
10
5
5/18/2012
Listas Lineares
Ordenadas
Os elementos da lista podem ser formado por “campos”:
 Uma chave k[i] está associada ao nó L[i].
 A lista é dita classificada ou ordenada por chave quando:
se i < j então k[i] precede k[j]
2012.1
Programação de Computadores II
11
Listas Lineares
Exercício
Implemente em Java uma lista linear utilizando Arrays.
2012.1
Programação de Computadores II
12
6
5/18/2012
Listas Lineares
Exercício
Casa:
Implemente em Java uma lista linear ordenada utilizando Arrays.
2012.1
Programação de Computadores II
13
Listas Lineares
Estruturas de Acesso Restrito
Para muitas aplicações é necessário impor restrições
de acesso aos dados.
Tais restrições podem ser benéficas por:
• aliviar a necessidade de usar estruturas com mais
detalhes.
• permitir implementações mais simples e flexíveis.
2012.1
Programação de Computadores II
14
7
5/18/2012
Listas Lineares
Pilhas
Apenas duas operácões básicas:
PUSH ou Empilha: Acrescentar no topo da pilha
POP ou Desempilha: Retirar do topo da pilha
2012.1
Programação de Computadores II
15
Listas Lineares
Pilhas
Como o último elemento que entrou na pilha será o
primeiro a sair da pilha. A pilha é conhecida como uma
estrutura do tipo:
LIFO (“Last In First Out”).
2012.1
Programação de Computadores II
16
8
5/18/2012
Listas Lineares
Exercício
Implemente em Java uma pilha utilizando Arrays.
2012.1
Programação de Computadores II
17
Listas Lineares
Filas
Apenas duas operácões básicas:
Queue ou Enfila: v é inserido no final da fila.
Dequeue ou Desenfila: descarta o elemento mais
antigo da fila, ou seja, aquele que está no início da fila.
2012.1
Programação de Computadores II
18
9
5/18/2012
Listas Lineares
Filas
Como o primeiro elemento que entrou na fila será o
primeiro a sair da fila. A fila é conhecida como uma
estrutura do tipo:
FIFO (“First In First Out”).
2012.1
Programação de Computadores II
19
Listas Lineares
Exercício
Implemente em Java uma fila utilizando Arrays.
2012.1
Programação de Computadores II
20
10
Download