Java函数:如何实现栈的基本操作
发布时间:2023-11-02 01:32:31
栈是一种具有特殊限制的数据结构,它只允许在栈顶进行插入和删除操作。栈的基本操作包括压栈(Push)、弹栈(Pop)、获取栈顶元素(Peek)和判断栈是否为空(isEmpty)。下面是使用Java语言实现栈的基本操作的示例代码:
public class Stack {
private int maxSize; // 栈的容量
private int top; // 栈顶指针
private int[] stackArray; // 栈数组
// 构造方法,初始化栈对象
public Stack(int size) {
maxSize = size;
stackArray = new int[maxSize];
top = -1; // 初始化栈顶指针为-1表示栈为空
}
// 压栈操作
public void push(int element) {
if (isFull()) {
System.out.println("栈已满,无法进行压栈操作!");
} else {
stackArray[++top] = element;
}
}
// 弹栈操作
public int pop() {
if (isEmpty()) {
System.out.println("栈为空,无法进行弹栈操作!");
return -1;
} else {
return stackArray[top--];
}
}
// 获取栈顶元素
public int peek() {
if (isEmpty()) {
System.out.println("栈为空,无法获取栈顶元素!");
return -1;
} else {
return stackArray[top];
}
}
// 判断栈是否为空
public boolean isEmpty() {
return (top == -1);
}
// 判断栈是否为满
public boolean isFull() {
return (top == maxSize - 1);
}
}
以上代码定义了一个栈类 Stack,并实现了栈的基本操作。其中,maxSize 是栈的容量,top 是栈顶指针,stackArray 是用来存储栈元素的数组。
在主程序中,我们可以创建 Stack 对象,并使用其提供的方法来进行栈的操作。例如:
public class Main {
public static void main(String[] args) {
Stack stack = new Stack(5); // 创建容量为 5 的栈对象
stack.push(1); // 压入元素 1
stack.push(2); // 压入元素 2
stack.push(3); // 压入元素 3
System.out.println(stack.peek()); // 输出栈顶元素 3
System.out.println(stack.pop()); // 弹出栈顶元素 3
System.out.println(stack.isEmpty()); // 输出 false,栈非空
System.out.println(stack.isFull()); // 输出 false,栈未满
}
}
运行以上代码,将得到如下输出:
3 3 false false
通过以上示例代码,我们可以实现栈的基本操作。当然,在实际应用中,我们可能还需要实现其他的栈操作,如获取栈的大小、清空栈等。根据具体的需求,我们可以在 Stack 类中进行扩展。
