Como implementar uma pilha em Java usando um array
Anteriormente nós estudamos o funcionamento e aplicações das pilhas em estruturas de dados. Vamos ver agora como implementar uma estrutura de pilha na linguagem Java, usando um array como base.
Lembrando que também é possível implementar pilhas usando listas ligadas, assunto que abordaremos mais à frente em nosso curso de Estruturas de Dados.
Criando a Pilha
Primeiramente criaremos uma classe de nome Pilha para representar as pilhas no programa principal:
/* Implementando operações com pilhas em Java Criando a Classe Pilha Implementamos as funções isEmpty, peek, push e pop */ public class Pilha { static final int MAX = 1000; int top; int a[] = new int[MAX]; // Define tamanho máximo da pilha // Construtor Pilha() { top = -1; } // Métodos da pilha boolean isEmpty() { return (top < 0); } boolean push(int x) { if (top >= (MAX-1)) { System.out.println("Estouro de Pilha!"); return false; } else { a[++top] = x; return true; } } int pop() { if (top < 0) { System.out.println("Pilha Vazia!"); return 0; } else { int x = a[top--]; return x; } } int peek() { if (top < 0) { System.out.println("Pilha Vazia!"); return 0; } else { return a[top]; } } }
Usando a pilha
Para usar a nossa classe Pilha vamos instanciá-la no programa principal e realizar algumas operações push e pop para inserir e retirar itens na pilha:
// Código do main import java.util.Scanner; public class PilhaJava { public static void main(String args[]) { Scanner entrada = new Scanner(System.in); System.out.println("Entre com um número:"); int valor = entrada.nextInt(); Pilha novaPilha = new Pilha(); novaPilha.push(valor); novaPilha.push(70); novaPilha.push(88); System.out.println("Item de valor " + novaPilha.pop() + " retirado da pilha"); System.out.println("Item restante: " + novaPilha.peek()); System.out.println("Item de valor " + novaPilha.pop() + " retirado da pilha"); System.out.println("Item restante: " + novaPilha.peek()); } }
Resultado:
É isso aí! No próximo tutorial veremos como criar e utilizar pilhas em linguagem C.
Até lá!