Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas |
Escreva um programa Java que cria uma classe Pilha usando um array de inteiros como armazenagem interna - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 412 vezes |
Pergunta/Tarefa: Escreva um programa Java que cria uma classe Pilha usando um array de inteiros como armazenagem interna. No construtor da classe você deverá permitir ao usuário informar o tamanho desse vetor interno. Forneça as funcionalidades padrão de uma pilha, a saber: empilhar um novo elemento, desempilhar o elemento no topo da pilha, retornar o elemento do topo sem removê-lo, exibir o conteúdo da pilha e verificar se ela está ou não vazia. Sua saída deverá ser parecida com: Pilha vazia: true Inseri os valores 3, 6 e 8 na pilha, nessa ordem Elementos na pilha: 8 6 3 Topo da pilha: 8 Elemento desempilhado: 8 Elementos na pilha: 6 3 Veja a resolução comentada deste exercício usando Java: Primeiro vamos analisar o código para a classe Pilha.java: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Pilha { private int vetor[]; // vetor que guarda os elementos da pilha private int topo; // elemento no topo da pilha // construtor da classe public Pilha(int tamanho) { // alocamos memória para o vetor interno da pilha vetor = new int[tamanho]; // e ajustamos o topo como vazia topo = -1; } // método para empilhar um novo valor na pilha public void empilhar(int valor) { // a pilha já está cheia? if (topo == vetor.length - 1) { System.out.println("\nA pilha está cheia\n"); } else { // incrementa o ponteiro do topo topo++; // e guarda o novo valor no topo da pilha vetor[topo] = valor; } } // método para desempilhar e retornar o elemento // no topo da plha public int desempilhar() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); return -1; } else { // obtém o elemento no topo da pilha int elementoRemovido = vetor[topo]; // decrementa a variável de topo topo--; // e retorna o elemento removido return elementoRemovido; } } // retorna o elemento no topo da pilha sem // removê-lo public int topoPilha() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); return -1; } else { // retorna o elemento no topo, mas não remove return vetor[topo]; } } // método para verificar se a pilha está vazia public boolean pilhaVaiza() { return topo == -1; } // exibe os elementos na pilha public void exibirPilha() { // a pilha está vazia? if (topo == -1) { System.out.println("\nPilha vazia\n"); } else { System.out.print("Elementos na pilha: "); for (int i = topo; i >= 0; i--) { System.out.print(vetor[i] + " "); } System.out.println(); } } } Agora veja o código para a classe Estudos.java, que nos permite testar a nossa classe Pilha: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package estudos; public class Estudos { public static void main(String[] args) { // Vamos criar uma nova pilha Pilha pilha = new Pilha(10); // a pilha está vazia? System.out.println("Pilha vazia: " + pilha.pilhaVaiza()); // vamos inserir 3 elementos na pilha System.out.println("Inseri os valores 3, 6 e 8 na pilha, nessa ordem"); pilha.empilhar(3); pilha.empilhar(6); pilha.empilhar(8); // vamos exibir o conteúdo da pilha pilha.exibirPilha(); // vamos mostrar o topo da pilha System.out.println("Topo da pilha: " + pilha.topoPilha()); // vamos desempilhar um elemento da pilha System.out.println("Elemento desempilhado: " + pilha.desempilhar()); // vamos exibir o conteúdo da pilha novamente pilha.exibirPilha(); } } |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como usar o laço for para percorrer os elementos de um array e exibí-los na ordem original e invertidosQuantidade de visualizações: 14905 vezes |
Pergunta/Tarefa: Considere o seguinte array de inteiros: // um array de inteiros contendo sete elementos int valores[] = {6, 9, 12, 34, 83, 20, 17}; Seu programa deverá exibir a seguinte saída: Ordem original: 6 9 12 34 83 20 17 Ordem inversa: 17 20 83 34 12 9 6 ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public static void main(String[] args){ // um vetor de inteiros contendo sete elementos int valores[] = {6, 9, 12, 34, 83, 20, 17}; // primeiro vamos exibir os valores do vetor na ordem original System.out.println("Ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // agora vamos exibir na ordem inversa System.out.println("\n\nOrdem inversa:\n"); for(int i = valores.length - 1; i >= 0; i--){ System.out.print(valores[i] + " "); } } |
Java ::: Pacote java.lang ::: String |
Apostila de Java Básico - Como usar o método replace() da classe String para efetuar a substituição de substrings em uma stringQuantidade de visualizações: 7894 vezes |
A substituição de substrings, ou seja, pedaços de texto, é uma das tarefas mais comuns em programação. Em Java isso pode ser feito por meio do método replace() da classe String. Veja sua assinatura:public String replace(CharSequence target, CharSequence replacement) Veja um trecho de código no qual usamos o método replace() para substituir todas as ocorrências de "C++" por "Java": ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public class Estudos { public static void main(String[] args) { String frase = "Programar em C++ é muito bom! Gosto muito de C++"; System.out.println("Frase original: " + frase); // vamos substituir todas as ocorrências de "C++" por "Java" frase = frase.replace("C++", "Java"); System.out.println("Depois da substituição: " + frase); } } Ao executarmos este código teremos o seguinte resultado: Frase original: Programar em C++ é muito bom! Gosto muito de C++ Depois da substituição: Programar em Java é muito bom! Gosto muito de Java Note que o método replace() pode atirar uma exceção do tipo NullPointerException se o parâmetro target ou replacement for null. |
Java ::: Dicas & Truques ::: Data e Hora |
Como usar a classe GregorianCalendar do Java em suas aplicaçõesQuantidade de visualizações: 13537 vezes |
[Baseado na documentação Java] - A classe GregorianCalendar (do pacote java.util) é uma classe concreta derivada de Calendar que fornece o sistema de calendário padrão usado em praticamente todos os países. Veja sua posição na hierarquia de classes Java:java.lang.Object java.util.Calendar java.util.GregorianCalendar As interfaces implementadas por esta classe são Serializable, Cloneable e Comparable<Calendar>.[br][br] A classe GregorianCalendar é um calendário híbrido que suporta tanto o sistema de calendário juliano (Julian) quanto o gregoriano (Gregorian), com suporte para uma única descontinuidade, a qual corresponde por padrão à data gregoriana quando o calendário gregoriano foi instituido (15 de outubro de 1582 em alguns países, mais tarde em outros). Esta data pode ser alterada por meio de uma chamada ao método setGregorianChange(). Veja um trecho de código no qual criamos uma instância da classe GregorianCalendar usando a data e hora atual, o fuso horário (time zone) e localização (locale) 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[]){ Calendar agora = new GregorianCalendar(); System.out.println(agora.toString()); } } Observe como instanciamos um objeto da classe GregorianCalendar e o tratamos como um objeto da classe Calendar. Esta forma de referenciar um objeto da classe derivada a partir de uma interface ou superclasse é muito comum em Java. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
C# - Como adicionar ou subtrair dias de uma data em C# usando o método AddDays() da estrutura DateTime Java - Como usar null em Java |
Códigos Fonte |
![]() 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 |
![]() 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 |