![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
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: 804 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: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
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 |





