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

Java函数实现堆栈数据结构的基本操作:推、弹、查看顶部值

发布时间:2023-09-05 15:02:24

堆栈(Stack)是一种常见的数据结构,具有后进先出(Last-In-First-Out,LIFO)的特点。在Java中,可以使用数组或链表来实现堆栈。下面是一个使用链表实现堆栈数据结构的基本操作的Java函数实现。

首先,我们需要定义一个Node类,用于表示堆栈的节点。每个节点有一个值和一个指向下一个节点的指针。

class Node {
    int value;
    Node next;

    public Node(int value) {
        this.value = value;
        this.next = null;
    }
}

接下来,我们定义一个Stack类,用于操作堆栈。Stack类有以下几个基本方法:

1. push(int value):将一个元素压入堆栈中。

2. pop():弹出堆栈顶部的元素。

3. peek():查看堆栈顶部的元素。

class Stack {
    Node top;

    public Stack() {
        this.top = null;
    }

    public void push(int value) {
        Node newNode = new Node(value);
        newNode.next = top;
        top = newNode;
    }

    public int pop() {
        if (top == null) {
            throw new EmptyStackException();
        }
        int value = top.value;
        top = top.next;
        return value;
    }

    public int peek() {
        if (top == null) {
            throw new EmptyStackException();
        }
        return top.value;
    }
}

使用这些方法,我们可以进行堆栈的操作。例如,可以按照以下方式使用这个堆栈:

Stack stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(stack.peek());  // 输出3
System.out.println(stack.pop());   // 输出3
System.out.println(stack.peek());  // 输出2
System.out.println(stack.pop());   // 输出2
System.out.println(stack.peek());  // 输出1
System.out.println(stack.pop());   // 输出1
stack.pop();  // 抛出EmptyStackException异常

在这个例子中,我们首先将1、2和3分别压入堆栈中,然后使用peek方法查看堆栈顶部的元素,使用pop方法从堆栈中弹出元素。弹出元素后,使用peek方法查看新的堆栈顶部的元素。最后,当堆栈为空时,再次使用pop方法将会抛出一个异常。

这是一个使用链表实现堆栈数据结构的简单示例。在实际应用中,可能还需要其他方法或属性来满足特定需求。