在这个实例中,我们将学习用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实现了堆栈数据结构。
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 泛型。