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

Tutoriales básicos de Java

Control de flujo de Java

Arreglo de Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Manejo de excepciones en Java

Lista de Java (List)

Cola de Java (Queue)

Conjunto de Mapa de Java

Conjunto de Java

Entrada y salida de Java (I/)

Lector de Java/Writer

Temas de Java

Implementación de la estructura de datos Stack (Stack) en el programa Java

    Java 实例大全

En este ejemplo, aprenderemos a implementar la estructura de datos pila usando Java.

Para entender este ejemplo, asegúrate de que primero accedas a los siguientes tutoriales:

Ejemplo1:Implementación del programa de Stack en Java

// Implementación de Stack en Java
class Stack {
  //Almacena los elementos de la pila
  private int arr[];
  //Representa la parte superior de la pila
  private int top;
  //Capacidad total de la pila
  private int capacity;
  //Crear pila
  Stack(int size) {
    // Inicializar el array
    // Inicializar las variables de la pila
    arr = new int[size];
    capacity = size;
    top = -1;
  }
  // Enviar el elemento a la parte superior de la pila
  public void push(int x) {
    if (isFull()) {
      System.out.println("Desbordamiento de pila");
      // Terminar el programa
      System.exit(1);
    }
    //Insertar un elemento en la parte superior de la pila
    System.out.println("Insertar " + x);
    arr[++top] = x;
  }
  //从堆栈顶部弹出元素
  public int pop() {
    //Si la pila está vacía
    //No hay elementos que desapilar
    if (isEmpty()) {
      System.out.println("PILA VACÍA");
      //Terminar el programa
      System.exit(1);
    }
    //从堆栈顶部弹出元素
    return arr[top--];
  }
  //Devolver el tamaño de la pila
  public int getSize() {
    return top + 1;
  }
  // Verificar si la pila está vacía
  public Boolean isEmpty() {
    return top == -1;
  }
  // Verificar si la pila está llena
  public Boolean isFull() {
    return top == capacity - 1;
  }
  // Mostrar los elementos de la pila
  public void printStack() {
    for (int i = 0; i <= top; i++) {
      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("Pila: ");
    stack.printStack();
    //Eliminar elementos de la pila
    stack.pop();
    System.out.println("\nDespués de desapilar");
    stack.printStack();
  }
}

输出结果

Insertar 1
Insertar 2
Insertar 3
Pila: 1, 2, 3,  
Después de desapilar
1, 2,

En el ejemplo anterior, ya hemos implementado la estructura de datos de pila en Java.

Ejemplo2: Implementación de pila con la clase Stack

Java proporciona una clase integrada Stack que se puede usar para implementar una pila.

import java.util.Stack;
class Main {
  public static void main(String[] args) {
    //Crear un objeto de la clase Stack
    Stack<String> animals = new Stack<>();
    //将元素推入堆栈顶部
    animals.push("Dog");
    animals.push("Horse");
    animals.push("Cat");
    System.out.println("Stack: " + animals);
    //从堆栈顶部弹出元素
    animals.pop();
    System.out.println("弹出后 Stack: " + animals);
    }
}

输出结果

Stack: [Dog, Horse, Cat]
弹出后 Stack: [Dog, Horse]

在上面的示例中,我们使用了Java的Stack类以实现堆栈。这里,

  • animals.push() - 将元素插入堆栈顶部

  • animals.pop() - 从堆栈顶部删除元素

注意,我们<String>在创建堆栈时使用了尖括号。它表示堆栈是泛型类型。要了解有关泛型的更多信息,请访问Java 泛型

Java 实例大全