English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico de Java

Controle de fluxo do Java

Array do Java

Java Orientado a Objetos (I)

Java Orientado a Objetos (II)

Java Orientado a Objetos (III)

Tratamento de Exceções Java

Lista (List) do Java

Fila (Queue) do Java

conjunto Map do Java

conjunto Set do Java

Java Entrada e Saída (I/)

Reader do Java/Writer

Outros tópicos do Java

Implementação de estrutura de dados pilha (Stack) em programa Java

    Java Exemplos de Instância Completo

Neste exemplo, vamos aprender a implementar a estrutura de dados pilha usando Java.

Para entender este exemplo, certifique-se de que você primeiramente acessou o seguinte tutorial,

Exemplo1:Implementação de pilha em programa Java

// Implementação de pilha em Java
class Stack {
  //Armazena elementos da pilha
  private int arr[];
  //Representa o topo da pilha
  private int top;
  //Capacidade total da pilha
  private int capacity;
  //Criar pilha
  Stack(int size) {
    // Inicializar array
    // Inicializar variáveis da pilha
    arr = new int[size];
    capacity = size;
    top = -1;
  }
  // Empurrar elemento para o topo da pilha
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");
      // Terminar o programa
      System.exit(1);
    }
    //Inserir elemento no topo da pilha
    System.out.println("Inserir " + x);
    arr[++top] = x;
  }
  //Remover elemento do topo da pilha
  public int pop() {
    //Se a pilha estiver vazia
    //Não há elementos para popping
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      //Terminar o programa
      System.exit(1);
    }
    //Remover elemento do topo da pilha
    return arr[top--];
  }
  //Retornar o tamanho da pilha
  public int getSize() {
    return top + 1;
  }
  // Verificar se a pilha está vazia
  public Boolean isEmpty() {
    return top == -1;
  }
  // Verificar se a pilha está cheia
  public Boolean isFull() {
    return top == capacity - 1;
  }
  // Exibir elementos da pilha
  public void printStack() {
    for (int i = 0; i <= top;++) {
      System.out.print(arr[i] + ", ");
    }
  }
  public static void main(String[] args) {
    Stack stack = new Stack(5);
    stack.push(1);
    stack.push(2);
    stack.push(3);
    System.out.print("Pilha: ");
    stack.printStack();
    //Remover elemento da pilha
    stack.pop();
    System.out.println("\nDepois de popping");
    stack.printStack();
  }
}

Resultados de Saída

Inserir 1
Inserir 2
Inserir 3
Pilha: 1, 2, 3,  
Depois de popping
1, 2,

No exemplo acima, já implementamos a estrutura de dados pilha em Java.

Exemplo2: Implementação de pilha usando a classe Stack

Java oferece uma classe integrada Stack que pode ser usada para implementar pilhas.

import java.util.Stack;
class Main {
  public static void main(String[] args) {
    //Criar um objeto da classe Stack
    Stack<String> animals = new Stack<>();
    //Inserir elemento no topo da pilha
    animals.push("Cachorro");
    animals.push("Cavalo");
    animals.push("Gato");
    System.out.println("Pilha: " + animals);
    //Remover elemento do topo da pilha
    animals.pop();
    System.out.println("Pilha: " + animals);
    }
}

Resultados de Saída

Pilha: [Cachorro, Cavalo, Gato]
Pilha: [Cachorro, Cavalo]

No exemplo acima, usamos a classe Stack do Java para implementar a pilha. Aqui,

  • animals.push() - Inserir elemento no topo da pilha

  • animals.pop() - Remover elemento do topo da pilha

Atenção, usamos <String> ao criar a pilha. Isso indica que a pilha é um tipo genérico. Para obter mais informações sobre genéricos, acesseJava Genéricos

Java Exemplos de Instância Completo