用Java实现一个栈的代码
时间: 2024-09-29 19:10:04 浏览: 25
在Java中,我们可以使用数组或链表(如LinkedList)来实现一个栈数据结构。这里是一个简单的基于数组的栈实现示例:
```java
import java.util.EmptyStackException;
public class ArrayBasedStack {
private int[] stack;
private int top; // 栈顶元素的位置
public ArrayBasedStack(int size) {
stack = new int[size];
top = -1; // 初始化栈顶为-1表示栈为空
}
// 入栈操作
public void push(int value) {
if (top == stack.length - 1) {
throw new StackOverflowError("Stack is full");
}
top++;
stack[top] = value;
}
// 出栈操作
public int pop() throws EmptyStackException {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
int poppedValue = stack[top];
top--;
return poppedValue;
}
// 查看栈顶元素但不移除
public int peek() throws EmptyStackException {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
return stack[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 返回栈的大小(元素数量)
public int size() {
return top + 1;
}
}
```
在这个例子中,我们创建了一个`ArrayBasedStack`类,包含基本的栈操作,如`push`、`pop`、`peek`以及检查栈是否为空。注意,在实际项目中,可以考虑使用`java.util.Stack`类作为基础,它已经封装了这些功能。
阅读全文