Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como remover no final de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 725 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no final da lista ligada e retorne o seu valor. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 8 Informe o 2.o valor: 5 Informe o 3.o valor: 3 Informe o 4.o valor: 9 Informe o 5.o valor: 4 Valores na lista: 8 -> 5 -> 3 -> 9 -> 4 -> null Removendo no final da lista O nó removido foi: 4 Valores na lista novamente: 8 -> 5 -> 3 -> 9 -> null Na saída podemos ver que a lista contém os valores 8, 5, 3, 9 e 4. Depois que o nó no final é removido, os elementos da lista ficam 8, 5, 3 e 9. Veja a resolução comentada deste exercício usando Java: package estudos; import java.util.Scanner; // classe interna usada para representar um // nó na lista ligada class No { int valor; // valor do nó No proximo; // aponta para o novo nó // construtor cheio da classe No public No(int valor, No proximo) { this.valor = valor; this.proximo = proximo; } // construtor vazio da classe No public No() { this.valor = 0; this.proximo = null; } } public class Estudos { // vamos criar uma referência para o início da lista static No inicio = null; public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos inserir 5 valores inteiros na lista ligada int valor; System.out.println("Inserindo 5 valores na lista\n"); for (int i = 0; i < 5; i++) { System.out.print("Informe o " + (i + 1) + ".o valor: "); valor = Integer.parseInt(entrada.nextLine()); // vamos inserir este valor no final da lista inserirFinal(valor); } // vamos exibir os valores na lista ligada System.out.print("\nValores na lista: "); exibirLista(); // vamos remover o nó no final da lista ligada System.out.println("\nRemovendo no final da lista"); No removido = removerFinal(); System.out.println("O nó removido foi: " + removido.valor); // vamos exibir os valores na lista ligada System.out.print("\nValores na lista novamente: "); exibirLista(); } // método que permite remover e retornar um nó no final da lista public static No removerFinal(){ // a lista está vazia? if (inicio == null){ return null; } // precisamos de nós auxiliares para chegar até o nó // antes do último No p = inicio, q = null, proximo = inicio.proximo; // só existe um nó na lista? if (proximo == null) { inicio = null; // retorna o nó removido return p; } // existe mais de um nó na lista while((proximo = p.proximo) != null) { // avançamos os ponteiros dos nós q = p; p = proximo; } // ajustamos o próximo como null q.proximo = null; // retorna o nó removido |
![]() |
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 |