Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas |
|
Como remover um nó no início de uma lista duplamente encadeada em Java - Escreva um programa Java que cria uma lista - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 660 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que cria uma lista dinâmica duplamente encadeada (lista duplamente ligada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista e retorne o seu valor. Sua saída deve ser parecida com: Inserindo valores na lista duplamente ligada: Informe o 1.o valor: 4 Informe o 2.o valor: 9 Informe o 3.o valor: 1 Informe o 4.o valor: 3 Informe o 5.o valor: 7 Valores na lista duplamente encadeada: 4 9 1 3 7 Removendo no início da lista O nó removido foi: 4 Valores na lista duplamente ligada novamente: 9 1 3 7 Na saída podemos ver que a lista contém os valores 4, 9, 1, 3 e 7. Depois que o nó no início é removido, os elementos da lista ficam 9, 1, 3 e 7. 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); // vamos inserir 5 valores inteiros na lista ligada int valor; System.out.println("Inserindo valores na lista duplamente ligada:\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 duplamente ligada System.out.print("\nValores na lista duplamente encadeada: "); exibirLista(); // vamos remover o nó no início da lista duplamente ligada System.out.println("\nRemovendo no início da lista"); No removido = removerInicio(); System.out.println("O nó removido foi: " + removido.valor); // vamos exibir os valores na lista duplamente ligada System.out.print("\nValores na lista duplamente ligada novamente: "); 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; } } // função que permite remover o nó no início de uma lista // duplamente ligada em Java public static No removerInicio() { // primeiro apontamos para o início da lista No no = inicio; // a lista está vazia? if (no != null) { // o início da lista aponta para o seu próximo inicio = inicio.proximo; // é o último nó da lista? if (inicio != null) { inicio.anterior = null; } } // retorna o nó removido ou null no caso da lista vazia return no; } // 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; } } } |
|
Link para compartilhar na Internet ou com seus amigos: | |
Java ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Curso Completo de Java - Como usar constantes em JavaQuantidade de visualizações: 15412 vezes |
O valor de uma variável pode ser alterado durante a execução do programa. Mas, o valor de uma constante não é alterado jamais. Escritas sempre com letras maiúsculas, as constantes trazem algumas vantagens, entre elas o fato de que nomes descritivos para constantes podem tornar o programa mais fácil de ser lido. Além disso, o valor representado pela constante pode ser alterado em apenas um lugar do código fonte. Veja abaixo como declarar e usar uma constante em Java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // Este exemplo mostra como declarar e usar // uma constante em Java public class Estudos{ final static int IDENT_PROGRAMA = 47; public static void main(String args[]){ System.out.println("O valor da constante " + "é " + IDENT_PROGRAMA); System.exit(0); } } Observe que usamos o modificador final para marcar um identificador como constante. Veja agora o que acontece quando tentamos alterar o valor de uma constante em tempo de compilação: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // vamos tentar alterar o valor da constante IDENT_PROGRAMA = 29; O compilador emitirá a seguinte mensagem de erro: Estudos.java:9: cannot assign a value to final variable IDENT_PROGRAMA IDENT_PROGRAMA = 29; ^ 1 error |
Java ::: Dicas & Truques ::: Fuso Horários |
Como representar fuso horário em Java usando a classe TimeZoneQuantidade de visualizações: 12854 vezes |
A classe abstrata TimeZone (do pacote java.util) representa um determinado fuso horário e também identifica o horário de verão (daylight savings) de um determinado país ou região. Veja sua posição na hierarquia de classes Java:java.lang.Object java.util.TimeZone A melhor forma de entender o fuso horário, é consultando suas configurações regionais no Painel de Controle de seu sistema. É comum, em máquinas brasileiras encontrarmos o fuso horário "GMT -03:00 - Brasilia". Isso quer dizer que a hora oficial do Brasil é -3 horas em relação ao horário de Greenwich, Londres. Não podemos nos esquecer do horário de verão, que reduz esta diferença para -2 horas na maior parte do país. Por padrão, A JVM detecta e trabalha com o fuso horário da máquina na qual está sendo executada. Veja um trecho de código que obtém este TimeZone padrão: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String args[]){ TimeZone timeZone = TimeZone.getDefault(); System.out.println(timeZone.getDisplayName()); System.out.println(timeZone.getID()); } } Ao executar este código você terá um resultado semelhante à: Brasilia Time America/Sao_Paulo Aqui nós usamos o método estático getDefault() para retornar o TimeZone padrão e os métodos de instância getDisplayName() e getID() para obter as informações sobre o fuso horário. |
Java ::: Projetos Java Completos - Códigos Fonte Completos Java ::: Jogos (Games) |
Como criar o jogo Pedra, Papel, Tesoura em Java - Jogo completo em Java com código comentadoQuantidade de visualizações: 5893 vezes |
Faça o download do código-fonte Pedra, Papel, Tesoura em Java Nesta dica mostrarei como criar o famoso joguinho Pedra, Papel, Tesoura na linguagem Java. Trata-se de um código bem simples e que vou comentar linha a linha, para que você extraia todo o conteúdo necessário para deixar a sua lógica de programação ainda mais afiada. Nesta versão eu mostrarei como jogar Pedra, Papel, Tesoura contra o computador. Depois de entender todo o código você não terá dificuldade para implementar uma versão que lhe permitirá jogar contra seus amigos. Antes de vermos o código, eis uma imagem do jogo em execução: Quais técnicas de programação vou aprender com o código desse jogo? O joguinho Pedra, Papel, Tesoura é ótimo para estudantes de programação que está iniciando em Java e que gostariam de aprimorar sua lógica de programação, afinal, se você desenvolver uma boa lógica de programação, você conseguirá desenvolver soluções em qualquer linguagem. Além de entender como funciona o desenvolvimento de jogos em Java, você reforçará o seu conhecimento de laços, estrutura condicional if...else, entrada e saída e fluxo e desvio do algorítmo. Veja, por exemplo, um trecho de código no qual testamos se o jogador escolheu Pedra, Papel ou Tesoura, e também a escolha feita pelo computador: // o jogador escolheu Pedra? else if(jogador == 1){ // o computador escolheu Papel? if(computador == 2){ System.out.println("Você perdeu. Papel embrulha Pedra"); vitoriasComputador++; // aumenta as vitórias do computador } else{ // o computador escolheu Tesoura System.out.println("Você ganhou. Pedra amassa Tesoura"); vitoriasJogador++; // aumenta as vitórias do jogador } } // o jogador escolheu Papel? else if(jogador == 2){ // o computador escolheu Tesoura? if(computador == 3){ System.out.println("Você perdeu. Tesoura corta Papel"); vitoriasComputador++; // aumenta as vitórias do computador } else{ // o ocmputador escolheu Pedra System.out.println("Você ganhou. Papel embrulha Pedra"); vitoriasJogador++; // aumenta as vitórias do jogador } } Os links para você baixar todas as versões deste projeto estão abaixo: 1) PEDPAPTESJC - Jogo Pedra, Papel, Tesoura em Java Console - NetBeans IDE - Faça o download do código-fonte Pedra, Papel, Tesoura em Java. Não se esqueça: Uma boa forma de estudar o código é fazendo pequenas alterações e rodando para ver os resultados. Outra opção é começar um projeto Java do zero e ir adicionando trechos do código fonte para melhor entendimento de suas partes. |
Vamos testar seus conhecimentos em Python |
Qual dessas coleções Python é ordenada, mutável (permite mudanças) e permite duplicação de itens? A) Dictionary B) Tuple C) List D) Set E) Nenhuma das opções anteriores Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Analise o seguinte código JavaScriptlet valores = [1, 2, 3]; valores[6] = 9; document.write(valores[5]); Qual é o resultado de sua execução? A) undefined B) 9 C) 2 D) 3 E) Um erro de execução Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Perda de Carga Localizada, Acessórios de Tubulação Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?". Qual o valor do fator de atrito f na tubulação anteriormente citada? Qual valor do somatório de Ks tornaria a perda de carga singular idêntica à perda de carga linear? A) 0,66 e 66,2. B) 0,066 e 66,2. C) 0,132 e 66,2. D) 0,066 e 132,4. E) 0,132 e 132,4. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual instrução é usada para interromper um laço em Python? A) return B) catch C) break D) continue E) exit Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Água Fria: Reservatórios Um reservatório é dimensionado com diversos componentes que auxiliam na manutenção e limpeza do mesmo. Sobre os componentes acessórios de um reservatório é correto afirmar: A) A tubulação extravasora deve ter o mesmo diâmetro da tubulação de alimentação do reservatório. B) A tubulação de limpeza deve estar posicionada acima da saída da distribuição predial. C) Em pequenas edificações, com reservatórios de 500 litros, não é necessária a instalação de tubulação de limpeza. D) A tubulação extravasora deve jogar a água em local visível para alertar sobre o extravasamento do reservatório. E) É obrigatória a instalação de registro na saída da tubulação extravasora. Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Java - Como retornar os índices dos itens selecionados em uma JList de seleção múltipla do Java Swing |
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 |