Você está na página 1de 17

LISTAS LIGADAS

Aula #5 (Teorica)
Aula # 4 (Pratica)

Dr. Ticongolo, Inacio Gaspar


___________________________________________________________________
Abril de 2015
Lista Ligada
 
 Introdução
 
Vetores (listas implementadas com array) são uma
alternativa ao uso direto de arrays em Java, porém
apresenta seguintes inconvenientes:

 (1) Adicionar um elemento na primeira posição;


 (2) Remover um elemento da primeira posicao
 (3) O número de posições no vector ainda é previamente

fixado, embora possa aumentar de tamanho sempre que

necessário.
Lista Ligada
 

 Para resolver estes incovenientes vamos


recorrer à uma outra estrutura, Lista Ligada
ou encadeada.

 Para esta estrutura, iremos reimplementar os


métodos implementados no Vector, porém, o
maior destaque está da adição e remoção de
elementos no início da lista.
Lista Ligada
 

 Então a idéia aqui é ter uma forma de, dado


um elemento, saber quem é o próximo, sem
usar uma estrutura fixa.
Lista Ligada
 
Lista Ligada
 

 Para Conseguirmos esta estrutura, vamos


usar referência que posteriormente
chamaremos de “Nó”. Então, cada elemento
da nossa estrutura deve estar acopulado a um
nó.
Lista Ligada
 
 public class No {
 private No proximo;
 private Object elemento;
 public No(No proximo, Object elemento) {
 this.proximo = proximo;
 this.elemento = elemento;
 }
 public No(Object elemento) {
 this.elemento = elemento;
 }
 public void setProximo(No proximo) {
 this.proximo = proximo;
 }
 public No getProximo() {
 return proximo;
 }
 public Object getElemento() {
 return elemento;
 }
 }
Lista Ligada
 
 A classe “No” nunca deve ser acessada
diretamente por utilizadores da classe
ListaLigada, dessa forma garantimos que
ninguém mexa na estrutura interna e distrua
a nossa Estrutura.
 A classe ListaLigada possui inicialmente

apenas uma referência para o primeiro “Nó” e


outra para o último. Através do primeiro
conseguimos iterar até chegar em qualquer
posição necessária. A referência ao úlitmo irá
facilitar a inserção no fim da Lista.
Lista Ligada
 
 public class ListaLigada {
 private No primeiro;
 private No ultimo;
 }
Lista Ligada
 

 Adicionando no começo da Lista


Lista Ligada
 

 Adicionando no começo da Lista


Lista Ligada
 

 Adicionando no Fim da Lista


Lista Ligada
 

 Adicionando em qualquer posição da Lista


Lista Ligada
 
 Removendo do começo da Lista
Lista Ligada
 
 Removendo do fim da Lista

}
Interface
public interface InterfaceGeral {
public void adicionaInicio(Object elemento) ;
//adiciona elemento no inicio da lista
public void adicionaPosicao(int posicao, Object elemento);
//adiciona elemento numa dada posição
public void adicionaFim (Object elemento) ;
//adiciona elemento no fim da lista
public Object pega(int posicao) ;
//devolve elemento duma dada posicao
public void removeInicio(int posicao);
//remove elemento no inicio
public void removePosicao(int posicao);
//remove elemento duma dada posição
public void removeFim(int posicao);
//remove elemento no fim
public boolean contem(Object elemento);
// verifica se a lista contem um dado elemento
public int tamanho();
//devolve o numero de elementos da lista
}
FIM

Maputo, Marco de 2015

Você também pode gostar