programação de computadores ii - ic.uff.brrosseti/progii/2013-2/aula_05_listas_lineares.pdf ·...
TRANSCRIPT
Conteúdo: Listas lineares
Material elaborado pelos profs. Anselmo Montenegro e Marcos Lage com contribuições do prof. Leandro A. F. Fernandes
Programação de Computadores II TCC-00.174
Profs.: Leandro A. F. Fernandes(A1) & Marcos Lage(B1) & Isabel Rosseti(C1)
(Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage (Turma C1) www.ic.uff.br/~rosseti
Estrutura de Dados
Uma estrutura de dados armazena dados na memória do computador a fim de permitir o acesso eficiente dos mesmos.
23/09/2013 Programação de Computadores II 2
Introdução
Estrutura de Dados
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.
23/09/2013 Programação de Computadores II 3
Introdução
Listas Lineares
Listas Lineares: São de fácil manipulação.
Agrupam informações referentes a um conjunto de
elementos que se relacionam entre si
23/09/2013 Programação de Computadores II 4
Introdução
Listas Lineares
Uma lista linear é um conjunto de n elementos
x1, x2, ..., xn,
cuja propriedade estrutural baseia-se nas posições relativas de seus elementos.
23/09/2013 Programação de Computadores II 5
Definição
Listas Lineares
Uma lista linear é um conjunto de n elementos
x1, x2, ..., xn,
cuja propriedade estrutural baseia-se nas posições relativas de seus elementos.
23/09/2013 Programação de Computadores II 6
Definição
Supondo n > 0, temos:
x1 é o primeiro elemento
para 0 < k < n: xk é precedido por xk−1 e seguido por xk+1
Xn é o último elemento.
Listas Lineares
Para manipular listas lineares, precisamos disponibilizar operações de:
Busca, Inclusão, Remoção.
23/09/2013 Programação de Computadores II 7
Operações
Listas Lineares
Para manipular listas lineares, precisamos disponibilizar operações de:
Busca, Inclusão, Remoção.
23/09/2013 Programação de Computadores II 8
Operações
Casos particulares …
1. Insersão e remoção em um único extremo: Pilha.
2. Insersão e remoção em extremos distintos: Fila.
Listas Lineares
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.
23/09/2013 Programação de Computadores II 9
Alocação
Listas Lineares
A forma mais natural de armazenar uma lista linear consiste em armazenar seus elementos em células de memória consecutivas.
23/09/2013 Programação de Computadores II 10
Alocação Sequencial
Suponha que cada célula tem endereço ε e ocupa k bytes:
Listas Lineares
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]
23/09/2013 Programação de Computadores II 11
Ordenadas
Listas Lineares
Implemente em Java uma lista linear utilizando Arrays.
23/09/2013 Programação de Computadores II 12
Exercício
Listas Lineares
Casa:
Implemente em Java uma lista linear ordenada utilizando Arrays.
23/09/2013 Programação de Computadores II 13
Exercício
Listas Lineares
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.
23/09/2013 Programação de Computadores II 14
Estruturas de Acesso Restrito
Listas Lineares
Apenas duas operácões básicas:
PUSH ou Empilha: Acrescentar no topo da pilha
POP ou Desempilha: Retirar do topo da pilha
23/09/2013 Programação de Computadores II 15
Pilhas
Listas Lineares
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”).
23/09/2013 Programação de Computadores II 16
Pilhas
Listas Lineares
Implemente em Java uma pilha utilizando Arrays.
23/09/2013 Programação de Computadores II 17
Exercício
Listas Lineares
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.
23/09/2013 Programação de Computadores II 18
Filas
Queue Queue
Queue Queue Dequeue Dequeue Dequeue Dequeue
Listas Lineares
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”).
23/09/2013 Programação de Computadores II 19
Filas
Queue Queue
Queue Queue Dequeue Dequeue Dequeue Dequeue
Listas Lineares
Implemente em Java uma fila utilizando Arrays.
23/09/2013 Programação de Computadores II 20
Exercício