Você está na página 1de 45

Prof.

Daniel Gondim, MSc


LISTA LIGADA Departamento de Computao -
UEPB
LISTA LIGADA (LINKED LIST)
uma estrutura de dados em que objetos so arranjados em
ordem linear.
Ordem estabelecida por ligao (links) entre elementos da lista.
Cada n da lista armazena um elemento e uma referncia para
o prximo n da lista.
LISTA LIGADA (LINKED LIST)
Caractersticas
Um dos tipos abstratos de dados fundamentais
Sequncia de tamanho arbitrrio e dinmico de elementos de algum tipo
base
Utiliza o espao necessrio (alocao dinmica)
A ordem determinada por um ponteiro e no pelo ndice como no array
Acesso sequencial
LISTA
Operaes
Inserir
Remover
Pesquisar
Tamanho
Vazio
QUESTES DE IMPLEMENTAO
Implementao esttica implementada com arrays
Implementao dinmica atravs de duas abordagens:
Estrutura recursiva com mtodos iterativos
Cada elemento (n) da lista contm um dado armazenado e um apontador para o prximo
elemento da lista
Estrutura recursiva com mtodos recursivos
Cada elemento (n) da lista contm um dado armazenado e um apontador para o prximo
elemento da lista
QUESTES DE IMPLEMENTAO
Implementao esttica implementada com arrays
Implementao dinmica atravs de duas abordagens:
Estrutura recursiva com mtodos iterativos
Cada elemento (n) da lista contm um dado armazenado e um apontador para o prximo
elemento da lista
Estrutura recursiva com mtodos recursivos
Cada elemento (n) da lista contm um dado armazenado e um apontador para o prximo
elemento da lista
QUESTES DE IMPLEMENTAO
Lista vazia
Representada por um n especial (NIL) sem dado
Pode tambm ser representado por NULL (no recomendado)
Ns sentinela
Representam a lista vazia e so acrescentados nas extremidades das listas
Simplificam e aceleram alguns algoritmos sobre lista e do garantia de
que uma lista sempre contm algum n (mesmo que seja vazio)
IMPLEMENTAO
Exemplo: lista de inteiros no negativos

Como implementar em Java?


LISTA (IMPLEMENTAO)
LISTA (IMPLEMENTAO)
LISTA (IMPLEMENTAO)
LISTA (ISEMPTY)
Apenas a lista vazia deve retornar true.
LISTA (INSERIR)
Listas no ordenadas
Inseres no incio ou no fim
Listas ordenadas
Inseres na posio correta (preservar ordem)
LISTA (INSERIR)
Listas no ordenadas
Inseres no incio ou no fim
Listas ordenadas
Inseres na posio correta (preservar ordem)
LISTA (INSERIR)
Listas no ordenadas
Inseres no incio ou no fim
Listas ordenadas
Inseres na posio correta (preservar ordem)
LISTA (INSERIR)
Adotar listas no ordenadas e insero no final

()
LISTA (PROCURAR)
A procura sequencial e se d pelo valor armazenado
LISTA (PROCURAR)

()
LISTA (REMOVER)
As remoes se do pelo valor armazenado
LISTA (REMOVER)

()
LISTA (TAMANHO)
Como calcular o tamanho de uma lista?
LISTA (TAMANHO)
Como calcular o tamanho de uma lista?

()
LISTA (TOARRAY)
Deve retornar um array contendo os elementos da lista na ordem
do head para o final.
EXERCCIO
Implemente um mtodo que encontre o maior elemento de uma
lista ligada.
Implemente um mtodo que encontre o menor elemento de uma
lista ligada.
LISTA DUPLAMENTE LIGADA
LISTA DUPLAMENTE LIGADA
Cada n tem referncias para os ns sucessor e predecessor
Listas duplamente encadeadas tm a vantagem de poderem ser
percorridas em ambas as direes

Isto permite reduzir para a metade o tempo mximo para


acessar um elemento com base no seu ndice
Head e last ficam acessveis na lista dupla
LISTA DUPLAMENTE LIGADA
Como seria a implementao de uma lista duplamente ligada?
A estrutura do n muda?
A estrutura da lista em si muda?
LISTA (IMPLEMENTAO)
Como seria a implementao de uma lista duplamente ligada?
LISTA (IMPLEMENTAO)
Como seria a implementao de uma lista duplamente ligada?
LISTA (IMPLEMENTAO)
Como seria a implementao de uma lista duplamente ligada?
LISTA (IMPLEMENTAO)
Como seria a implementao de uma lista duplamente ligada?
LISTA (IMPLEMENTAO)
LISTA DUPLA(SEARCH)
Pelos dois sentidos: head e last
LISTA DUPLA (IMPLEMENTAO)
LISTA DUPLA (INSERIR NO FINAL = DEFAULT)
LISTA DUPLA (INSERIR NO FINAL = DEFAULT)
LISTA DUPLA (INSERIR NO INCIO)
LISTA DUPLA (INSERIR NO INCIO)
LISTA DUPLA (REMOVER NO INCIO)
LISTA DUPLA (REMOVER NO INCIO)
LISTA DUPLA (REMOVER NO FINAL)
LISTA DUPLA (REMOVER NO FINAL)
LISTA DUPLA (REMOVER PELA CHAVE = DEFAULT)
LISTA DUPLA (REMOVER PELA CHAVE = DEFAULT)
REFERNCIAS
Captulo 11

Você também pode gostar