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

Java Grund教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java Ausnahmebehandlung

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java其他主题

Java程序实现堆栈(Stack)数据结构

    Java Beispiele大全

在这个实例中,我们将学习如何使用Java实现堆栈数据结构。

要了解此示例,请确保您首先访问以下教程,

Beispiel1:实现堆栈的Java程序

// Stack在Java中的实现
class Stack {
  //存储堆栈元素
  private int arr[];
  //表示堆栈的顶部
  private int top;
  //堆栈的总容量
  private int capacity;
  //Stack创建
  Stack(int size) {
    // Initialisiere das Array
    // Initialisiere Stapelvariablen
    arr = new int[size];
    capacity = size;
    top = -1;
  }
  // Legen Sie das Element auf den Stapelkopf
  public void push(int x) {
    if (isFull()) {
      System.out.println("Stack OverFlow");
      // Beenden Sie das Programm
      System.exit(1);
    }
    //Fügen Sie ein Element auf den Stapelkopf
    System.out.println("Einfügen " + x);
    arr[++top] = x;
  }
  //Element vom Stackoberen entfernen
  public int pop() {
    //Wenn der Stapel leer ist
    //Es gibt keine Elemente zum Entnehmen
    if (isEmpty()) {
      System.out.println("STACK EMPTY");
      //Beenden Sie das Programm
      System.exit(1);
    }
    //Element vom Stackoberen entfernen
    return arr[top--];
  }
  //Geben Sie die Größe des Stapels zurück
  public int getSize() {
    return top + 1;
  }
  // Überprüfen Sie, ob der Stapel leer ist
  public Boolean isEmpty() {
    return top == -1;
  }
  // Überprüfen Sie, ob der Stapel voll ist
  public Boolean isFull() {
    return top == capacity - 1;
  }
  // Zeige die Elemente des Stapels an
  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("Stapel: ");
    stack.printStack();
    //Element aus dem Stapel entfernen
    stack.pop();
    System.out.println("\nNach dem Ausgeben");
    stack.printStack();
  }
}

Ausgaberesultat

Einfügen 1
Einfügen 2
Einfügen 3
Stapel: 1, 2, 3,  
Nach dem Ausgeben
1, 2,

Im obigen Beispiel haben wir bereits die Stapel-Datenstruktur in Java implementiert.

Beispiel2: Stapel mit der Stack-Klasse implementieren

Java bietet eine eingebettete Klasse Stack an, die zur Implementierung von Stapeln verwendet werden kann.

import java.util.Stack;
class Main {
  public static void main(String[] args) {
    //Erstellen Sie ein Objekt der Klasse Stack.
    Stack<String> animals = new Stack<>();
    //Element in den Stackoberen einfügen
    animals.push("Dog");
    animals.push("Horse");
    animals.push("Cat");
    System.out.println("Stack: " + animals);
    //Element vom Stackoberen entfernen
    animals.pop();
    System.out.println("Nach dem Entfernen vom Stack: " + animals);
    }
}

Ausgaberesultat

Stack: [Dog, Horse, Cat]
Stack: [Dog, Horse]

Im obigen Beispiel haben wir die Java-Stack-Klasse verwendet, um den Stack zu realisieren. Hier

  • animals.push() - Element in den Stackoberen einfügen

  • animals.pop() - Element vom Stackoberen entfernen

Beachten Sie, dass wir in <String> beim Erstellen des Stacks Klammern verwendet haben. Dies bedeutet, dass der Stack ein generischer Typ ist. Weitere Informationen zu Generics finden Sie unterJava Generics

Java Beispiele大全