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: 315 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; } } } |
Link para compartilhar na Internet ou com seus amigos: |
JavaScript ::: Dicas & Truques ::: Matemática e Estatística |
JavaScript para matemática - Como obter o maior entre dois ou mais valores numéricos usando a função max() do JavaScriptQuantidade de visualizações: 10429 vezes |
A função max() do objeto Math da linguagem JavaScript pode ser usada quando temos dois ou mais valores numéricos e gostaríamos de retornar o maior deles. Note que esta função não aceita um vetor (array) como argumento, ou seja, os valores devem ser fornecidos de forma literal ou passados como variáveis independentes. Veja o código JavaScript completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudando JavaScript</title> </head> <body> <script type="text/javascript"> var n1 = 45; var n2 = 18; var maior = Math.max(n1, n2); document.write("O maior número é " + maior); </script> </body> </html> Ao executar este código nós teremos o seguinte resultado: O maior número é 43 O retorno do método max() é um objeto Number representando o maior dos valores fornecidos. Se nenhum argumento for informado, o retorno será um objeto Infinity, enquanto um objeto NaN será retornado se algum dos valores fornecidos não for um valor numérico válido. |
C# ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir um diretório em C# usando a função Delete() da classe DirectoryInfoQuantidade de visualizações: 9933 vezes |
O método Delete() da classe DirectoryInfo do C# é muito útil quando precisamos excluir um diretório. Esta função é do tipo void, ou seja, não retorna nada. Veja um código completo demonstrando o seu uso: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- using System; using System.IO; namespace Estudos { class Principal { static void Main(string[] args) { // vamos criar uma nova instância da classe DirectoryInfo DirectoryInfo dir = new DirectoryInfo(@"C:\estudos_csharp\imagens"); // vamos tentar excluir o diretório try { dir.Delete(); Console.WriteLine("Diretório excluído com sucesso."); } catch (Exception e) { Console.WriteLine("Não foi possível excluir o diretório: {0}", e.ToString()); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código C# nós teremos o seguinte resultado: Diretório excluído com sucesso. Se o diretório a ser excluido não estiver vazio, a chamada ao método System.IO.DirectoryInfo.Delete() poderá gerar o seguinte erro: Não foi possível excluir o diretório: System.IO.IOException: A pasta não está vazia. : 'C:\estudos_csharp\imagens' at System.IO.FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel, Boolean allowDirectoryNotEmpty) at System.IO.FileSystem.RemoveDirectory(String fullPath, Boolean recursive) at System.IO.DirectoryInfo.Delete() at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 12 |
C++ ::: STL (Standard Template Library) ::: Vector C++ |
Como retornar a quantidade de elementos em um vector do C++ usando a função size()Quantidade de visualizações: 6949 vezes |
Em algumas situações nós precisamos obter o tamanho, ou seja, a quantidade de elementos contidos em um container vector da STL (Standard Template Library). Isso pode ser feito por meio da função-membro size(). Veja sua assinatura:size_type size() const; Aqui size_type é um tipo integral sem sinal. Veja um exemplo no qual obtemos a quantidade de elementos atualmente no vector: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #include <cstdlib> #include <iostream> #include <vector> using namespace std; int main(int argc, char *argv[]){ // um vector vazio que conterá inteiros vector<int> valores; // vamos inserir três elementos valores.push_back(54); valores.push_back(13); valores.push_back(87); // vamos obter a quantidade de elementos no vector int quant = valores.size(); // exibe o resultado cout << "O vector contém " << quant << " elementos." << endl; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } Ao executar este código C++ nós teremos o seguinte resultado: O vector contém 3 elementos. Note que o número de elementos em um vector é diferente de sua capacidade. Um vector pode ter uma capacidade de 10 elementos mas conter apenas 3 elementos no momento. A capacidade de um vector é aumentado automaticamente à medida que novos elementos são adicionados. |
JavaScript ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o caractere associado a um código ASCII ou Unicode em JavaScript usando a função fromCharCode() do objeto StringQuantidade de visualizações: 8419 vezes |
Nesta dica mostrarei como podemos retornar o caractere a partir de seu código ASCII ou Unicode em JavaScript. Para isso nós vamos usar a função fromCharCode() do objeto String. Veja a página HTML completa para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <!doctype html> <html> <head> <title>Strings em JavaScript</title> </head> <body> <script type="text/javascript"> var codigo = 102; document.write("O caractere para o código " + codigo + " é: " + String.fromCharCode(codigo)); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: O caractere para o código 102 é: f |
PHP ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em PHP - Como calcular Bhaskara em PHPQuantidade de visualizações: 875 vezes |
Como resolver uma equação do 2º grau usando PHP Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando a linguagem PHP. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso código PHP vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código PHP. Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <?php // para executar abra uma janela de comando // cmd e dispare o comando abaixo: // C:\xampp\php>php c:\estudos_php\estudos.php // para ler a entrada do usuário $entrada = fopen("php://stdin","r"); // vamos pedir para o usuário informar os valores dos coeficientes echo "Valor do coeficiente a: "; $a = trim(fgets($entrada)); echo "Valor do coeficiente b: "; $b = trim(fgets($entrada)); echo "Valor do coeficiente c: "; $c = trim(fgets($entrada)); // vamos calcular o discriminante $discriminante = ($b * $b) - (4 * $a * $c); // a equação possui duas soluções reais? if($discriminante > 0){ $raiz1 = (-$b + sqrt($discriminante)) / (2 * $a); $raiz2 = (-$b - sqrt($discriminante)) / (2 * $a); echo "Existem duas raizes: x1 = " . $raiz1 . " e x2 = " . $raiz2; } // a equação possui uma única solução real? else if($discriminante == 0){ $raiz1 = $raiz2 = -$b / (2 * $a); echo "Existem duas raizes iguais: x1 = " . $raiz1 . " e x2 = " . $raiz2; } // a equação não possui solução real? else if($discriminante < 0){ $raiz1 = $raiz2 = -$b / (2 * $a); $imaginaria = sqrt(-$discriminante) / (2 * $a); echo "Existem duas raízes complexas: x1 = " . $raiz1 . " + " . $imaginaria . " e x2 = " . $raiz2 . " - " . $imaginaria; } ?> Ao executar este código PHP nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1 e x2 = -3 |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
HTML5 - HTML5 para iniciantes - Como usar a meta tag viewport para controlar o layout de suas páginas HTML |
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 |