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

如何在Java中实现栈的基本操作函数?

发布时间:2023-07-05 23:53:04

在Java中,可以使用数组或链表来实现栈的基本操作函数。以下是使用数组实现栈的示例代码:

1. 创建一个Stack类,包含以下成员变量和方法:

- int size: 栈的大小

- int top: 栈顶指针

- int[] stackArray: 存储栈元素的数组

- Stack(int size): 构造函数,创建一个指定大小的栈

- void push(int data): 入栈操作,将元素data压入栈顶

- int pop(): 出栈操作,将栈顶元素弹出并返回

- int peek(): 返回栈顶元素但不删除

- boolean isEmpty(): 判断栈是否为空

- boolean isFull(): 判断栈是否已满

2. 实现Stack类的代码如下:

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

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

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

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

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

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

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

3. 在主函数中测试Stack类的功能:

public class Main {
    public static void main(String[] args) {
        Stack stack = new Stack(5);

        stack.push(1);
        stack.push(2);
        stack.push(3);

        System.out.println("Peek: " + stack.peek());

        stack.pop();

        System.out.println("Peek: " + stack.peek());
    }
}

运行结果:

Peek: 3
Peek: 2

以上代码实现了栈的基本操作函数,包括入栈(push)、出栈(pop)、返回栈顶元素(peek)、判断栈是否为空(isEmpty)以及判断栈是否已满(isFull)等功能。这样可以方便地在Java中使用栈结构。