English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在这个实例中,我们将学习如何使用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.
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。