📜  Java中的堆栈类(1)

📅  最后修改于: 2023-12-03 15:31:58.855000             🧑  作者: Mango

Java中的堆栈类

Java中的堆栈类是一种数据结构,可以实现后进先出(LIFO)的算法。堆栈类通常用于存储临时数据,用于函数调用和子程序调用等。

Java中的堆栈类的实现可以使用数组或链表。在这里,我们将讨论使用数组实现的堆栈类。

实现

我们可以使用Java中的数组来实现堆栈。我们需要定义一个数组来存储堆栈中的元素,以及一个整数变量来存储堆栈顶部的位置。位置指向堆栈中的元素。

以下是堆栈类的示例实现:

public class Stack {
    private int maxSize;
    private int[] stackArray;
    private int top;

    public Stack(int size) {
        maxSize = size;
        stackArray = new int[maxSize];
        top = -1;
    }

    public void push(int value) {
        if (top == maxSize - 1) {
            System.out.println("Stack is full!");
        } else {
            top++;
            stackArray[top] = value;
        }
    }

    public int pop() {
        if (top == -1) {
            System.out.println("Stack is empty!");
            return -1;
        } else {
            int value = stackArray[top];
            top--;
            return value;
        }
    }

    public boolean isEmpty() {
        return (top == -1);
    }

    public boolean isFull() {
        return (top == maxSize - 1);
    }

    public int peek() {
        if (top == -1) {
            System.out.println("Stack is empty!");
            return -1;
        } else {
            return stackArray[top];
        }
    }
}
使用

使用堆栈类,您可以使用以下方法:

  • push() - 向堆栈添加元素。
  • pop() - 从堆栈中删除元素并返回其值。
  • isEmpty() - 检查堆栈是否为空。
  • isFull() - 检查堆栈是否已满。
  • peek() - 返回堆栈顶部的元素而不将其删除。

以下是使用堆栈类的示例:

Stack stack = new Stack(5);
stack.push(1);
stack.push(2);
stack.push(3);

System.out.println(stack.pop());     // 输出 3
System.out.println(stack.peek());    // 输出 2
System.out.println(stack.pop());     // 输出 2

System.out.println(stack.isEmpty()); // 输出 false
System.out.println(stack.isFull());  // 输出 false
结论

Java中的堆栈类是一种非常有用的数据结构,可以轻松实现后进先出算法。使用堆栈类,您可以轻松地添加,删除和访问元素。