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

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

发布时间:2023-07-04 09:14:40

在Java中,可以使用数组或链表实现栈的操作。下面将分别介绍两种实现方式。

1. 使用数组实现栈:

首先,声明一个整型数组来存储栈元素,同时定义一个整型变量top来表示栈顶元素的位置。初始时,令top=-1表示栈为空。

1.1 入栈操作(push):

将要入栈的元素放入数组中的top+1位置,并将top加1。

public void push(int x) {
    stack[++top] = x;
}

1.2 出栈操作(pop):

将栈顶的元素返回,并将top减1。

public int pop() {
    return stack[top--];
}

1.3 判断栈是否为空(isEmpty):

当栈顶指针top=-1时,表示栈为空。

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

1.4 获取栈顶元素(peek):

返回栈顶位置的元素值,但不将其出栈。

public int peek() {
    return stack[top];
}

2. 使用链表实现栈:

首先,定义一个内部类Node表示链表的节点,每个节点包含一个元素值和指向下一个节点的指针。

2.1 入栈操作(push):

创建一个新的节点,将要入栈的元素赋值给节点的元素值,并将新节点指向栈顶节点,然后将栈顶指针指向新节点。

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

2.2 出栈操作(pop):

将栈顶节点的元素值返回,并将栈顶指针指向下一个节点。

public int pop() {
    int value = top.value;
    top = top.next;
    return value;
}

2.3 判断栈是否为空(isEmpty):

当栈顶指针top为null时,表示栈为空。

public boolean isEmpty() {
    return top == null;
}

2.4 获取栈顶元素(peek):

返回栈顶节点的元素值,但不将其出栈。

public int peek() {
    return top.value;
}

以上是使用数组和链表两种方式实现栈的基本操作。可以根据具体需求进行扩展,比如增加栈的大小限制、获取栈的大小等功能。