在这个实例中,我们将学习用Java实现堆栈数据结构。
要了解此示例,请确保您首先访问以下教程,
示例1:实现堆栈的Java程序
// Stack implementation in Java class Stack { //存储堆栈元素 private int arr[]; //表示堆栈的顶部 private int top; //堆栈的总容量 private int capacity; //创建堆栈 Stack(int size) { // 初始化数组 // 初始化堆栈变量 arr = new int[size]; capacity = size; top = -1; } // 将元素推送到堆栈顶部 public void push(int x) { if (isFull()) { System.out.println("Stack OverFlow"); // 终止程序 System.exit(1); } //在堆栈顶部插入元素 System.out.println("插入 " + x); arr[++top] = x; } //从堆栈顶部弹出元素 public int pop() { //如果堆栈为空 //没有要弹出的元素 if (isEmpty()) { System.out.println("STACK EMPTY"); //终止程序 System.exit(1); } //从堆栈顶部弹出元素 return arr[top--]; } //返回堆栈的大小 public int getSize() { return top + 1; } // 检查堆栈是否为空 public Boolean isEmpty() { return top == -1; } // 检查堆栈是否已满 public Boolean isFull() { return top == capacity - 1; } // 显示堆栈的元素 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("堆栈: "); stack.printStack(); //从堆栈中删除元素 stack.pop(); System.out.println("\n在弹出之后"); stack.printStack(); } }
输出结果
插入 1 插入 2 插入 3 堆栈: 1, 2, 3, 在弹出之后 1, 2,
在上面的示例中,我们已经用Java实现了堆栈数据结构。
示例2:使用Stack类实现堆栈
Java提供了一个可用于实现堆栈的内置类 Stack。
import java.util.Stack; class Main { public static void main(String[] args) { //创建一个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 泛型。