Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como inserir um nó no final de uma lista duplamente encadeada em Java - Escreva um programa Java que pede para o usuário - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 712 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar vários valores inteiros e insira-os no final de uma lista duplamente ligada. Não se esqueça de que a lista duplamente encadeada, ou duplamente ligada, é uma variação da lista singularmente ligada. Diferente de uma lista singularmente encadeada, a lista duplamente encadeada gerencia nós que mantém referências tanto para o próximo nó quanto para o nó anterior. Lembre-se disso durante a sua implementação da resolução do exercício. Outro cuidado é com relação ao ponteiros para os nós anteriores. Sua implementação da lista duplamente encadeada em Java deve ser capaz de suportar a varredura tanto do início para o final quanto do final para o início. Sua saída deve ser parecida com: Inserindo no final da lista Informe o valor (-1 para sair): 7 Informe o valor (-1 para sair): 2 Informe o valor (-1 para sair): 4 Informe o valor (-1 para sair): 6 Informe o valor (-1 para sair): -1 Nós da lista duplamente encadeada: 7 2 4 6 Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; // classe interna para representar os nós da // lista duplamente encadeada class No { int valor; // valor armazenado no nó No anterior; // aponta para o nó anterior No proximo; // aponta para o próximo nó // construtor do nó public No(int valor){ this.valor = valor; this.anterior = null; this.proximo = null; } } public class Estudos { // referência para o início da lista duplamente ligada static No inicio; // referência para o final da lista duplamente ligada static No fim; public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // agora vamos pedir para o usuário informar // valores inteiros. O valor -1 sai do laço int valor; System.out.println("Inserindo no final da lista\n"); do { System.out.print("Informe o valor (-1 para sair): "); valor = Integer.parseInt(entrada.nextLine()); if (valor != -1) { // vamos inserir este valor no final da lista // duplamente encadeada inserirFinal(valor); } } while(valor != -1); // vamos exibir os valores na lista duplamente ligada System.out.print("\nNós da lista duplamente encadeada: "); exibirLista(); } // esta função permite inserir um novo nó no // final de uma lista duplamente encadeada public static void inserirFinal(int valor) { // o primeiro passo é construir um novo nó No novo = new No(valor); novo.anterior = null; // não possui nó anterior novo.proximo = null; // não possui nó próximo // a lista ainda está vazia? if (inicio == null) { // tanto o início quanto o fim da lista // apontam para o novo nó inicio = novo; fim = novo; } else { // o campo anterior do novo nó aponta para o // final da lista novo.anterior = fim; // o campo proximo do final da lista aponta // para o novo nó fim.proximo = novo; // finalmente o fim da lista aponta para // o novo nó fim = novo; } } // esta função permite exibir os valores de todos // os nós da lista duplamente encadeada public static void exibirLista() { // apontamos para o início da lista No temp = inicio; // a lista está vazia? if (inicio == null) { System.out.println("A lista está vazia"); return; } // enquanto temp for diferente de null while(temp != null) { // mostramos o valor do nó atual System.out.print(temp.valor + " "); // e pulamos para o nó seguinte temp = temp.proximo; } } } |
![]() |
Mais Desafios de Programação e 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 |