欢迎访问宙启技术站
智能推送

Java函数:如何实现栈的基本操作

发布时间:2023-11-02 01:32:31

栈是一种具有特殊限制的数据结构,它只允许在栈顶进行插入和删除操作。栈的基本操作包括压栈(Push)、弹栈(Pop)、获取栈顶元素(Peek)和判断栈是否为空(isEmpty)。下面是使用Java语言实现栈的基本操作的示例代码:

public class Stack {
    private int maxSize; // 栈的容量
    private int top; // 栈顶指针
    private int[] stackArray; // 栈数组

    // 构造方法,初始化栈对象
    public Stack(int size) {
        maxSize = size;
        stackArray = new int[maxSize];
        top = -1; // 初始化栈顶指针为-1表示栈为空
    }

    // 压栈操作
    public void push(int element) {
        if (isFull()) {
            System.out.println("栈已满,无法进行压栈操作!");
        } else {
            stackArray[++top] = element;
        }
    }

    // 弹栈操作
    public int pop() {
        if (isEmpty()) {
            System.out.println("栈为空,无法进行弹栈操作!");
            return -1;
        } else {
            return stackArray[top--];
        }
    }

    // 获取栈顶元素
    public int peek() {
        if (isEmpty()) {
            System.out.println("栈为空,无法获取栈顶元素!");
            return -1;
        } else {
            return stackArray[top];
        }
    }

    // 判断栈是否为空
    public boolean isEmpty() {
        return (top == -1);
    }

    // 判断栈是否为满
    public boolean isFull() {
        return (top == maxSize - 1);
    }
}

以上代码定义了一个栈类 Stack,并实现了栈的基本操作。其中,maxSize 是栈的容量,top 是栈顶指针,stackArray 是用来存储栈元素的数组。

在主程序中,我们可以创建 Stack 对象,并使用其提供的方法来进行栈的操作。例如:

public class Main {
    public static void main(String[] args) {
        Stack stack = new Stack(5); // 创建容量为 5 的栈对象

        stack.push(1); // 压入元素 1
        stack.push(2); // 压入元素 2
        stack.push(3); // 压入元素 3

        System.out.println(stack.peek()); // 输出栈顶元素 3

        System.out.println(stack.pop()); // 弹出栈顶元素 3

        System.out.println(stack.isEmpty()); // 输出 false,栈非空
        System.out.println(stack.isFull()); // 输出 false,栈未满
    }
}

运行以上代码,将得到如下输出:

3
3
false
false

通过以上示例代码,我们可以实现栈的基本操作。当然,在实际应用中,我们可能还需要实现其他的栈操作,如获取栈的大小、清空栈等。根据具体的需求,我们可以在 Stack 类中进行扩展。