Escolar Documentos
Profissional Documentos
Cultura Documentos
08 Aula ED - Listas Lineares 02
08 Aula ED - Listas Lineares 02
Curso: Informática
Profa. Evaldinolia Gilbertoni Moreira
Email: evaldinolia@acad.ifma.edu.br
Listas
Lineares
Implementaçã
o Listas sequenciais e listas encadeadas
Lista Sequenciais
...
...
1 2 3 4 MAX
n
primeiro = 0
ultimo = 0
...
1 2 3 4 MAX
primeiro = 0
ultimo = 0
Operações:
inserir item
xxxx . . .
...
1 2 3 4 MAX
primeiro = 1
ultimo = 1
Operações:
inserir item
...
xxxx xxxx xxxx xxxx xxxx
xxxx . . .
1 2 3 4 MAX
primeiro = 1
ultimo = MAX
Operações:
buscar item xxxx
xxxx xxxx xxxx . . .
xxx . . .
1 2 3 4 MAX n
primeiro = 1
ultimo = n
1 2 3 4 MAX
n
primeiro = 1
ultimo = n
Para remover, localize o item e depois mova todos os itens um posicao para
esquerda.
Operações:
remover item
xxxx xxx xxx xxx . . .
...
1 2 3 4 MAX
primeiro = 1
ultimo = n-1
Para remover, localize o item e depois mova todos os itens uma posição para
esquerda.
Discussão
Quais as vantagens da lista sequenciais?
Quais as suas desvantagens?
Lista Encadeada
primeiro
nil
ultimo
Estrutura básica:
registros alocado dinamicamente
Propriedade estrutural:
cada célula aponta para a sua sucessora
nil
ultimo
ultimo
temp <--
Operação: inserir item
primeiro
alocar(*Celula)
temp se primeiro == nil
nil
entao primeiro <-- temp
ultimo
temp <--
temp <--
temp
nil
temp <--
ultimo
alocar(*Celula)
se primeiro = nil entao
primeiro <-- temp ultimo <-- temp
temp <--
Operação: inserir item
primeiro
alocar(*Celula)
temp se primeiro = nil entao
nil
primeiro <-- temp
ultimo <-- temp
ultimo temp^.prox <-- nil
temp <--
Operação: inserir item
primeiro
temp
nil
ultimo
nil
ultimo
temp <--
alocar(*Celula)
ultimo^.prox <-- temp
ultimo
temp
ultimo
temp <-- alocar(*Celula)
ultimo^.prox <-- temp
ultimo <-- temp
Operação: p q
primeiro
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
Operação:
remover item
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
q <-- p^.prox
Operação:
remover item
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
q <-- p^.prox
Operação:
remover item
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
q <-- p^.prox
Operação: p^.prox <-- q^.prox
remover item
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
q <-- p^.prox
Operação: p^.prox <-- q^.prox
remover item
primeiro
nil p q
ultimo
p <-- buscarAnterior(L,x)
q <-- p^.prox
Operação: p^.prox <-- q^.prox
desalocar(q)
remover item
primeiro
nil
ultimo
nil
Operação:
remover item p q
p <-- buscarAnterior(L,x)
q <-- p^.prox
p^.prox <-- q^.prox
desalocar(q)
nil
ultimo