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 Java

Quantidade 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
Resposta/Solução:

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();
  }
}


Link para compartilhar na Internet ou com seus amigos:

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 invertidos

Quantidade 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};
Escreva um programa Java console que usa um laço for para percorrer todos os elementos deste vetor duas vezes e exibí-los na ordem original e invertidos (somente na exibição, ou seja, não é necessário alterar a ordem dos elementos no array).

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 
Resposta/Solução:

----------------------------------------------------------------------
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 string

Quantidade 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 que tanto o parâmetro target quanto o parâmetro replacement são objetos da interface CharSequence. Algumas das classes que implementam esta interface são: CharBuffer, Segment, String, StringBuffer e StringBuilder. Isso quer dizer que podemos passar qualquer objeto destas classes para o método replace(). O parâmetro target contém a substring a ser substituída pela substring do parâmetro replacement. O retorno do método é uma nova string com as substituições aplicadas. Se não houver nenhuma substituição a string original é retornada.

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ções

Quantidade 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ódigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 56 usuários muito felizes estudando em nosso site.