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

Java函数实现栈的基本操作:入栈、出栈、遍历等

发布时间:2023-07-03 21:23:14

栈(Stack)是一种先进后出(LIFO,Last In First Out)的数据结构,它只允许在一端(称为栈顶,Top)进行操作。栈的基本操作包括入栈(push)、出栈(pop)和遍历。下面我将使用Java语言来实现栈的基本操作。

首先,我们需要定义一个栈类,并声明一个数组用来存储栈中的元素。我们还需要一个变量top来记录栈顶的位置。

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

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

接下来,我们实现入栈操作。入栈操作需要把元素添加到栈顶,并更新top变量。

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

然后,我们实现出栈操作。出栈操作需要把栈顶元素弹出,并更新top变量。

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

此外,我们还需要实现一些辅助方法来判断栈是否为空或满。

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

public boolean isFull() {
    return top == stackArray.length - 1;
}

最后,我们可以实现一个遍历方法来打印栈中的所有元素。

public void traverse() {
    if (isEmpty()) {
        System.out.println("Stack is empty!");
        return;
    }
    for (int i = top; i >= 0; i--) {
        System.out.println(stackArray[i]);
    }
}

现在,我们可以使用这些方法来操作栈。

public static void main(String[] args) {
    Stack stack = new Stack(5);
    stack.push(1);
    stack.push(2);
    stack.push(3);
    stack.push(4);
    stack.push(5);

    stack.traverse(); // 输出 5 4 3 2 1

    stack.pop();
    stack.pop();

    stack.traverse(); // 输出 3 2 1
}

通过以上代码实现了栈的基本操作:入栈、出栈和遍历。栈的入栈和出栈操作都能达到O(1)的时间复杂度,非常高效。栈在计算机程序中有着广泛的应用,如递归、表达式求值等。掌握栈的基本操作是很重要的。