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)的时间复杂度,非常高效。栈在计算机程序中有着广泛的应用,如递归、表达式求值等。掌握栈的基本操作是很重要的。
