Você está na página 1de 13

Estrutura de Dados – Listas Encadeadas

Prof. Tatiane Fernandes


Lista Duplamente Encadeada

Como está nossa classe e objeto No na


lista encadeada:

prox
null

aluno
Lista Duplamente Encadeada
Iremos adicionar um atributo novo na classe No, agora além de apontar para o próximo nó
(prox), nosso classe também terá um atributo denominado ant, que será responsável por
apontar para o nó anterior.

Como ficará a classe No?

ant prox
null null

aluno
Lista Duplamente Encadeada
Iremos adicionar um atributo novo na classe No,
agora além de apontar para o próximo nó (prox),
nosso classe também terá um atributo
denominado ant, que será responsável por
apontar para o nó anterior.

Como ficará a classe No?

ant prox
null null

aluno
Lista Duplamente Encadeada

Como ficará a classe


ListaDuplamenteEncadeada?

Note que nada mudou


na classe
ListaDuplamenteEncadeada!
Por que?
Listas Duplamente Encadeada
Relembrando....

O que um lista de qualquer coisa deve fazer?

→ Adicionar um dado elemento no início da Lista.

→ Adicionar um dado elemento no fim da Lista.

→ Adicionar um dado elemento em um dada posição.

→ Remover o elemento no início da Lista.

→ Remover o elemento no fim da Lista.

→ Remover o elemento de uma dada posição.

→ Informar a quantidade de elementos da Lista.

→ Imprimir os elementos da lista.

inicio fim

null null
Adicionando no começo da lista e no fim da
lista duplamente encadeada
Adicionando no fim da lista duplamente
encadeada

inicio fim
Adicionando em qualquer posição da lista encadeada

● Para facilitar nosso


lógica vamos criar
um método que
retorna o nó onde
iremos adicionar o
novo nó;
posição que queremos
Adicionando em qualquer posição da lista encadeada

● Devemos também tomar


cuidado com os casos
particulares nos quais a
posição para inserir é o
começo ou o fim da Lista.
Exercício: Buscar um elemento da lista
duplamente encadeada

Perceba que este método consome tempo linear tanto


na lista encadeada quanto na duplamente encadeada.
→ Esta é uma grande desvantagem da Listas em relação aos Vetores.
Exercícios
● Crie os métodos na classe ListaDuplamenteEncadeada:
public Aluno removerInicio( ){
}
public Aluno removerFim( ){
}
public Aluno remover(int posicao){
}
Lista Duplamente Encadeada

Métodos Arrays Lista Lista Lista


encadeada encadeada com duplamente
com ponteiro ponteiro inicio e encadeada com
inicio fim ponteiro inicio e
fim
AdicionarInicio Linear Constante Constante Constante
AdicionarFim Constante Linear Constante Constante
AdicionarPorPosicao Linear Linear Linear Linear
RemoverInicio Linear Constante Constante Constante
RemoverFim Constante Linear Linear Constante
RemoverPorPosicao Linear Linear Linear Linear

Você também pode gostar