Escolar Documentos
Profissional Documentos
Cultura Documentos
Katia Guimares
...
Null
Tipos de Lista
1. Lista duplamente encadeada
Cada elemento um objeto com um campo chave
e dois ponteiros: ant e prox .
ant
(Dados)
prox
Opes de implementao
1. Arrays A alocao seqencial favorvel porque inseres e remoes no acarretam movimentao de ns.
Os elementos a serem inseridos ou removidos esto
em posies especiais.
Do que voc precisa ?
Pilha - Uma varivel que mantenha o topo da lista (topo).
Fila - Duas variveis que mantenham o incio (head) e o
final da lista (tail).
Dica: Leia o tpico no livros dos autores Cormen et al.
2. Listas encadeadas
Neste caso, as operaes envolvidas so casos particulares
daquelas apresentadas anteriormente.
Pilhas
Empilhamento coloca um elto x previamente definido
(alocao realizada,campos preenchidos) na pilha.
Pilha-Insero (P,x)
Entrada: pilha P , elemento a ser inserido x.
Sada: pilha (P + x)
Incio
1. Lista-Insero (P,x)
Fim
Filas
Insero (F,x) insere o elto x previamente definido na fila F.
Obs: Tail um ponteiro para o ltimo elemento.
Insero (F,x)
Entrada: uma fila F, elto x para inserir
Sada: fila (F + x)
Incio
1. prox(x) := nil
2. prox(tail(F)) := x
3. tail(F) := x
Fim
Qual o tempo de execuo da operao de insero?
Filas
Remoo(F) retirar o elemento x do incio da fila F.
Remoo (F)
Entrada: uma fila F
Sada: uma fila (F x)
Incio
1. se head(F) = nil
2.
ento {fila vazia}
3.
seno apont_x = head(F)
4.
head(F) := prox(apont_x)
5.
x := elem(apont_x)
6.
desaloque(apont_x)
7.
devolva(x)
Fim
Obs: Operao de consulta para pilhas e filas so imediatas.
Exerccios
1. Faa os algoritmos para as operaes sobre listas simplesmente encadeadas e circulares.
2. Faa os algoritmos para as operaes de pilhas e filas em
arrays.