Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como remover em qualquer posição de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada - Exercícios Resolvidos de JavaQuantidade de visualizações: 781 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e pede para o usuário inserir 5 elementos do tipo inteiro. Em seguida peça para o usuário informar um índice e remova o nó presente no índice informado. Faça a validação dos índices para que ele não saia da faixa permitida. Sua saída deve ser parecida com: Inserindo 5 valores na lista Informe o 1.o valor: 9 Informe o 2.o valor: 2 Informe o 3.o valor: 4 Informe o 4.o valor: 6 Informe o 5.o valor: 1 Valores na lista: 9 -> 2 -> 4 -> 6 -> 1 -> null Removendo um elemento no índice k Informe o índice desejado: 3 O nó removido foi: 6 Valores na lista: 9 -> 2 -> 4 -> 1 -> null Na saída podemos ver que a lista ligada possui inicialmente os valores 9, 2, 4, 6 e 1. Em seguida o índice 3 é informado, o que indica que o quarto nó deve ser removido, já que os índices começam em 0. Depois da remoção do nó com o valor 6, os elementos da lista são 9, 2, 4 e 1. 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 elemento no índice informado System.out.println("\nRemovendo um elemento no índice k\n"); System.out.print("Informe o índice desejado: "); int indice = Integer.parseInt(entrada.nextLine()); // o índice é válido? if ((indice < 0) || (indice > tamanhoLista() - 1)) { System.out.println("O índice é inválido."); } else { // vamos remover o nó no índice indicado No removido = removerIndice(indice); System.out.println("O nó removido foi: " + removido.valor); // vamos exibir os valores na lista ligada System.out.print("\nValores na lista: "); exibirLista(); } } // função que permite remover um nó em uma determinada // posição da lista ligada // O índice deve variar entre 0 e o tamanho da lista - 1 public static No removerIndice(int indice) { // para retornar o nó removido No removido; // a lista está vazia? if(inicio == null){ return null; } // devemos remover no início? else if(indice == 0){ // primeiro apontamos para o início da lista removido = inicio; // o início da lista aponta para o seu próximo inicio = inicio.proximo; // retornamos o nó removido return removido; } // devemos remover em outra posição da lista else { // aponta para o início da lista No temp = inicio; // repetimos até encontrar a posição desejada for (int i = 1; i < indice; i++){ // temp avança para o seu próximo nó temp = temp.proximo; } // o proximo do nó atual aponta para o próximo do seu próximo removido = temp.proximo; temp.proximo = temp.proximo.proximo; // retorna o nó removido return removido; } } // função que permite adicionar um nó no final da // lista ligada |
![]() |
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 |
Python - Como calcular o volume de chuvas em Python - Fórmula do cálculo do volume de chuvas em Python |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |