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: 859 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: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 |