如何在Java中实现栈的基本操作函数?
发布时间:2023-07-05 23:53:04
在Java中,可以使用数组或链表来实现栈的基本操作函数。以下是使用数组实现栈的示例代码:
1. 创建一个Stack类,包含以下成员变量和方法:
- int size: 栈的大小
- int top: 栈顶指针
- int[] stackArray: 存储栈元素的数组
- Stack(int size): 构造函数,创建一个指定大小的栈
- void push(int data): 入栈操作,将元素data压入栈顶
- int pop(): 出栈操作,将栈顶元素弹出并返回
- int peek(): 返回栈顶元素但不删除
- boolean isEmpty(): 判断栈是否为空
- boolean isFull(): 判断栈是否已满
2. 实现Stack类的代码如下:
public class Stack {
private int size;
private int top;
private int[] stackArray;
public Stack(int size) {
this.size = size;
this.top = -1;
this.stackArray = new int[size];
}
public void push(int data) {
if (!isFull()) {
stackArray[++top] = data;
} else {
System.out.println("Stack is full!");
}
}
public int pop() {
if (!isEmpty()) {
return stackArray[top--];
} else {
System.out.println("Stack is empty!");
return -1;
}
}
public int peek() {
if (!isEmpty()) {
return stackArray[top];
} else {
System.out.println("Stack is empty!");
return -1;
}
}
public boolean isEmpty() {
return top == -1;
}
public boolean isFull() {
return top == size - 1;
}
}
3. 在主函数中测试Stack类的功能:
public class Main {
public static void main(String[] args) {
Stack stack = new Stack(5);
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println("Peek: " + stack.peek());
stack.pop();
System.out.println("Peek: " + stack.peek());
}
}
运行结果:
Peek: 3 Peek: 2
以上代码实现了栈的基本操作函数,包括入栈(push)、出栈(pop)、返回栈顶元素(peek)、判断栈是否为空(isEmpty)以及判断栈是否已满(isFull)等功能。这样可以方便地在Java中使用栈结构。
