![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de dados para iniciantes - Como criar uma Lista Ligada em JavaQuantidade de visualizações: 1110 vezes |
|
A estrutura de dados Lista Ligada, ou Lista Encadeada, ou ainda Lista Singularmente Ligada, é a primeira estrutura de dados dinâmica que devemos estudar e dominar bem, antes de passarmos para as filas, pilhas, árvores e grafos. Uma Lista Ligada é uma estrutura de dados linear, na qual os elementos são guardados como nós. Cada nó da lista possui dois atributos: Um campo chamado "valor" ou "dados" (que pode guardar um valor inteiro, uma referência a um vetor ou matriz, objetos, etc) e um campo "proximo" (que guarda um ponteiro ou referência para o próximo elemento da lista, conforme mostrado na imagem abaixo: ![]() Essa definição é muito importante. Veja que temos uma estrutura ou classe (dependente da sua linguagem de programação) chamada No. O campo valor guarda o inteiro 15, enquanto o campo Proximo guarda uma referência a um objeto igual a ele, ou seja, o ponteiro "proximo" é o responsável pelo encadeamento da lista. Quando este ponteiro (ou referência) não estiver apontando para nenhum local de memória, então saberemos que ele é o último nó da lista. Quando encadeamos (ou ligamos) vários nós, temos a seguinte representaçaõ de lista ligada: ![]() Veja que nossa lista possui três nós. O primeiro nó, que é o início da lista, possui o valor 5, enquanto o terceiro nó, com o valor 4, é o final da lista. Em geral identificamos como final da lista o nó cujo ponteiro "proximo" não está apontando para nenhum outro nó. Agora que já vimos a teoria, vamos à implementação de uma lista encadeada simples em Java. Para facilitar seus estudos, eu optei por colocar tudo em apenas um código. Quando quiser avançar um pouco mais, divida as classes em arquivos .java separados. Eis o código completo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos;
// definição da classe No
class No {
// valor inteiro que será guardado neste nó
int valor;
// ponteiro para o próximo nó da lista
No proximo;
};
// definição da classe ListaLigada
class ListaLigada{
// aponta para o início da lista
No inicio;
// construtor que permite criar uma lista ligada vazia
public ListaLigada(){
// o valor null para o início da lista indica que ela
// está vazia
this.inicio = null;
}
// método que permite exibir os nós da lista
public void imprimirLista(){
// criamos um nó temporário para apontar para
// o primeiro nó da lista
No temp = this.inicio;
// testamos se a lista não está vazia
if(temp != null) {
System.out.println("Os valores na lista ligada são:\n");
// varremos a lista até encontrarmos um nó nulo
while(temp != null){
// exibimos o valor do nó
System.out.print(temp.valor + " ");
// e saltamos para o nó seguinte
temp = temp.proximo;
}
}
else { // a lista está vazia
System.out.println("\nLista vazia\n");
}
}
};
public class Estudos {
public static void main(String[] args){
// vamos criar uma lista ligada vazia
ListaLigada lista = new ListaLigada();
// vamos inserir o primeiro nó na lista
No no1 = new No();
no1.valor = 5; // define o valor do nó
no1.proximo = null; // náo aponta para nenhum outro nó
// marcamos este nó como sendo o início da lista
lista.inicio = no1;
// vamos inserir o segundo nó
No no2 = new No();
no2.valor = 32; // define o valor do nó
no2.proximo = null; // náo aponta para nenhum outro nó
// o primeiro nó vai apontar para este nó agora
no1.proximo = no2;
// vamos inserir mais um nó?
No no3 = new No();
no3.valor = 7; // define o valor do nó
no3.proximo = null; // náo aponta para nenhum outro nó
// o segundo nó vai apontar para este nó
no2.proximo = no3;
// vamos imprimir a lista
lista.imprimirLista();
// uma quebra de linha pra deixar o console bonito
System.out.println("\n");
}
}
Ao executar este código Java nós teremos o seguinte resultado: Os valores na lista ligada são: 5 32 7 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |








