Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas |
Escreva um programa Java para implementar uma classe Pilha usando uma lista ligada. Sua classe deverá oferecer as funções para empilhar, desempilhar - Exercícios Resolvidos de JavaQuantidade de visualizações: 530 vezes |
Pergunta/Tarefa: Escreva um programa Java para implementar uma classe Pilha usando uma lista ligada. Sua classe deverá oferecer as funções para empilhar, desempilhar, exibir os nós da pilha e verificar se a pilha está vazia. Na classe principal do seu programa Java você deverá fornecer um menu de opções para gerenciar a pilha. Uma sugestão é usar a estrutura switch() para criar o menu. Atenção: Sua solução deverá, obrigatoriamente, usar uma lista encadeada como implementação da pilha. Não é permitido usar arrays nem ArrayList. Sua saída deve ser parecida com: ------------------------------ PILHA EM JAVA ------------------------------ 1. Empilhar 2. Desempilhar 3. Exibir Pilha 4. Sair Sua opção: 1 Informe o valor a ser empilhado: 35 Valor empilhado com sucesso. Veja a resolução comentada deste exercício usando Java: Código para a classe Nó (No.java): ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; // definição da classe No public class No { int valor; // valor do nó No proximo; // aponta para o próximo nó } Código para a classe Pilha (Pilha.java): ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; public class Pilha { No topo; // aponta para o topo da pilha // construtor da classe public Pilha() { this.topo = null; // pilha vazia } // metodo que permite verificar se a pilha está vazia public boolean isVazia(){ return this.topo == null; } // método que permite empilhar um novo valor na pilha public void empilhar(int v){ // criamos um novo nó No novo_no = new No(); // definimos o valor do nó novo_no.valor = v; // apontamos para o nó que estava no topo novo_no.proximo = this.topo; // e a variável topo agora aponta para o novo nó this.topo = novo_no; } // método que permite desempilhar um nó da pilha public No desempilhar(){ // nó a ser retornado No removido = null; // a pilha não está vazia, né? if (this.topo != null) { // apontamos para o topo da pilha No temp = this.topo; // agora o topo aponta para o seu próximo this.topo = this.topo.proximo; // guardamos o valor para retornar no nó removido removido = new No(); removido.valor = temp.valor; // e marcamos o nó temp para remoção temp = null; } // retorna o nó desempilhado return removido; } // método que permite exibir todos os nós da pilha public void exibirNos(){ // vamos apontar para o topo da pilha No temp = this.topo; // enquanto temp for diferente de null while (temp != null) { System.out.println(temp.valor); // pulamos para o próximo nó temp = temp.proximo; } } } E agora o código para a classe principal, que contém um menu de opções para gerenciar a pilha (Estudos.java): ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; 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 nova pilha Pilha pilha = new Pilha(); // menu de opções para a pilha while(true){ System.out.println("\n------------------------------"); System.out.println(" PILHA EM JAVA"); System.out.println("------------------------------"); System.out.println("1. Empilhar"); System.out.println("2. Desempilhar"); System.out.println("3. Exibir Pilha"); System.out.println("4. Sair"); System.out.print("Sua opção: "); int opcao = Integer.parseInt(entrada.nextLine()); switch(opcao){ case 1: // vamos empilhar um novo valor na pilha System.out.print("\nInforme o valor a ser empilhado: "); int valor = Integer.parseInt(entrada.nextLine()); pilha.empilhar(valor); System.out.println("\nValor empilhado com sucesso."); break; case 2: // vamos desempilhar um valor da pilha No desempilhado = pilha.desempilhar(); if(desempilhado == null){ System.out.println("\nPilha vazia."); } else{ System.out.println("\nO valor desempilhado foi: " + desempilhado.valor); } break; case 3: // vamos mostrar o conteúdo da pilha if(pilha.isVazia()){ System.out.println("\nA pilha está vazia."); } else{ System.out.println("\nElementos na pilha:\n"); pilha.exibirNos(); } break; default: System.out.println("\nOpção inválida."); break; } } } } |
![]() |
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |