Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
Como inserir no final de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar vários - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 839 vezes |
Pergunta/Tarefa: Este exercício Java demonstra como inserir um nó no final de uma lista ligada. Escreva um programa Java que cria uma lista ligada, ou seja, uma lista dinamicamente encadeada, e pede para o usuário informar vários valores inteiros, colocando os valores sempre no final da lista. Seu código deverá interromper a leitura dos valores quando o usuário informar o valor -1. Quando isso acontecer, mostre todos os valores contidos na lista ligada, na mesma ordem que foram inseridos (o último valor lido será o último da lista). Sua saída deve ser parecida com: Inserindo valores no final da lista Informe o valor (-1 para sair): 3 Informe o valor (-1 para sair): 9 Informe o valor (-1 para sair): 1 Informe o valor (-1 para sair): 5 Informe o valor (-1 para sair): 2 Informe o valor (-1 para sair): -1 Valores na lista: 3 -> 9 -> 1 -> 5 -> 2 -> null 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 usada para representar um // nó na lista ligada class No { int valor; // valor do nó No proximo; // aponta para o novo nó // construtor da classe No No(int valor, No proximo) { this.valor = valor; this.proximo = proximo; } } public class Estudos { public static void main(String args[]){ // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos criar uma referência para o início da lista No inicio = null; // agora vamos pedir para o usuário informar // valores inteiros. O valor -1 sai do laço int valor; System.out.println("Inserindo valores no final da lista\n"); do { System.out.print("Informe o valor (-1 para sair): "); valor = Integer.parseInt(entrada.nextLine()); if (valor != -1) { inicio = inserirFinal(inicio, valor); } } while(valor != -1); // vamos exibir os valores na lista ligada System.out.print("\nValores na lista: "); exibirLista(inicio); } // função que permite adicionar um nó no final da // lista ligada public static No inserirFinal(No inicio, int valor) { // vamos apontar para o nó inicial No atual = inicio; // criamos um novo nó No novo = criarNo(valor); // a lista ligada ainda está vazia? if (atual == null){ // inicio recebe o novo nó inicio = novo; } else { // temos um ou mais nós na lista ligada // vamos localizar o último nó while (atual.proximo != null) { atual = atual.proximo; } // encontramos o último nó. Agora vamos inserir // o novo nó depois dele atual.proximo = novo; } // e retornamos o início da lista return inicio; } // função usada para construir e retornar um novo nó public static No criarNo(int valor) { // cria o novo nó No no = new No(valor, null); // retorna o nó criado return no; } // função usada para percorrer a lista ligada e // exibir os valores contidos em seus nós public static void exibirLista(No inicio) { // vamos apontar para o início da lista No temp = inicio; // a lista está vazia? if (temp == null) { System.out.println("A lista está vazia."); } else { // esse laço se repete enquanto tempo for // diferente de null while (temp != null) { // vamos mostrar o valor desse nó System.out.print(temp.valor + " -> "); // avança para o próximo nó temp = temp.proximo; } // mostra o final da lista System.out.println("null"); } } } |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Estruturas de Dados ::: Lista Ligada Simples |
Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em JavaQuantidade de visualizações: 10144 vezes |
Esta dica mostra como inserir nós no início de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // classe No public class No{ public int valor; public No proximo; } // fim da classe No Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no início quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Lista{ No inicio; // início da lista // método que permite exibir os valores de // todos os nós da lista public void exibir(){ if(inicio != null){ do{ System.out.println(inicio.valor); inicio = inicio.proximo; }while(inicio != null); } else System.out.println("A lista esta vazia\n\n"); } // método que permite inserir nós no // início da lista. // veja que o método recebe o valor a ser // armazenado em cada nó public void inserirInicio(int v){ No novo; // verifica se a lista está vazia if(inicio == null){ // reserva memória para o novo nó inicio = new No(); inicio.valor = v; // é o primeiro nó...não deve apontar para // lugar nenhum inicio.proximo = null; } else{ // não está vazia....vamos inserir o nó no início // vamos criar um novo nó agora novo = new No(); // atribui o valor do nó novo.valor = v; // define o inicio da lista como campo proximo // do novo nó novo.proximo = inicio; // o novo nó é o início da lista agora inicio = novo; } } } Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (TesteLista.java): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class TesteLista{ public static void main(String args[]){ // vamos criar uma nova lista Lista lista = new Lista(); // vamos inserir quatro valores no // início da lista lista.inserirInicio(45); lista.inserirInicio(3); lista.inserirInicio(98); lista.inserirInicio(17); // exibe os valores na lista lista.exibir(); System.exit(0); } } |
Java ::: Coleções (Collections) ::: Vector |
Como usar o método add() para adicionar um elemento no início de um objeto da classe Vector da linguagem JavaQuantidade de visualizações: 10006 vezes |
Nesta dica mostrarei como é possível adicionar novos elementos no início de um Vector usando o método add() dessa classe. A assinatura que usaremos é:public void add(int index, E element) Veja que o método recebe o índice indicando a posição na qual o novo elemento será inserido e o elemento propriamente dito. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.*; public class Estudos{ public static void main(String args[]){ // Cria um Vector Vector<Integer> valores = new Vector<Integer>(); // adiciona itens ao Vector valores.addElement(54); valores.addElement(87); valores.addElement(6); // Lista os itens do Vector System.out.println("Elementos no Vector: "); for(Enumeration e = valores.elements(); e.hasMoreElements();){ int valor = (Integer)e.nextElement(); System.out.print(valor + " "); } // Adiciona um elemento no início valores.add(0, 10); System.out.println(); // Lista os itens do Vector System.out.println("\nElementos no Vector: "); for(Enumeration e = valores.elements(); e.hasMoreElements();){ int valor = (Integer)e.nextElement(); System.out.print(valor + " "); } } } Ao executarmos este código nós teremos o seguinte resultado: Elementos no Vector: 54 87 6 Elementos no Vector: 10 54 87 6 É importante observar que as classes java.util.Vector e java.util.Hashtable foram marcadas como obsoletas a partir do JDK1.2 e provavelmente não serão usadas em novos desenvolvimentos. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como declarar e construir um array de int em Java e usar o laço for para solicitar ao usuário que informe os valores dos elementosQuantidade de visualizações: 13149 vezes |
Pergunta/Tarefa: Escreva um programa Java console que declara e constrói um array, ou seja, um vetor de 10 elementos do tipo int. Em seguida use um laço for para solicitar ao usuário que informe 10 valores inteiros e armazene tais valores nos elementos do array: Sua saída deverá ser parecida com: Informe o 1º valor: 5 Informe o 2º valor: 7 Informe o 3º valor: 11 Informe o 4º valor: 3 Informe o 5º valor: 9 Informe o 6º valor: 4 Informe o 7º valor: 20 Informe o 8º valor: 1 Informe o 9º valor: 6 Informe o 10º valor: 63 Os valores informados foram: O 1º valor foi: 5 O 2º valor foi: 7 O 3º valor foi: 11 O 4º valor foi: 3 O 5º valor foi: 9 O 6º valor foi: 4 O 7º valor foi: 20 O 8º valor foi: 1 O 9º valor foi: 6 O 10º valor foi: 63 Resposta/Solução: Como a solução deste exercício depende de valores informados pelo usuário, a classe Scanner deverá ser usada. Desta forma, você deverá importá-la, usando a linha: import java.util.Scanner; ---------------------------------------------------------------------- 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; public class Estudos { public static void main(String[] args) { // para este exercício você deverá importar a classe // Scanner. Ela está no pacote java.util.*; // vamos construir um objeto da classe Scanner para ler a // entrada do usuário Scanner entrada = new Scanner(System.in); // vamos declarar e construir um array de 10 inteiros int valores[] = new int[10]; // agora vamos solicitar ao usuário que informe os 10 valores para // os elementos do array. O mais recomendável neste caso é usar um // laço for que repetirá 10 vezes e, a cada repetição, solicitaremos // um valor for (int i = 0; i < valores.length; i++) { System.out.print("Informe o " + (i + 1) + "º valor: "); valores[i] = Integer.parseInt(entrada.nextLine()); } // para finalizar vamos exibir os valores informados pelo usuário e // presentes nos elementos do array System.out.println("\nOs valores informados foram:\n"); for (int i = 0; i < valores.length; i++) { System.out.println("O " + (i + 1) + "º valor foi: " + valores[i]); } } } |
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 |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |