java中用array实现stack
时间: 2024-10-16 19:09:03 浏览: 31
在Java中,虽然数组不是设计用于直接实现Stack(栈)的数据结构,但我们可以利用数组来模拟栈的功能。这里是一种常见的做法,即使用数组作为底层存储,并维护两个变量,一个是`top`,表示当前栈顶元素的位置;另一个是`size`,表示当前栈内元素的数量。
```java
public class ArrayBasedStack {
private int[] stackArray;
private int top = -1;
private int size = 0;
public ArrayBasedStack(int capacity) {
stackArray = new int[capacity];
}
// 入栈操作
public void push(int item) {
if (isFull()) {
throw new StackOverflowError("Stack is full");
}
stackArray[++top] = item;
size++;
}
// 出栈操作
public int pop() {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
return stackArray[top--];
}
// 查看栈顶元素但不移除
public int peek() {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
return stackArray[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return size == stackArray.length;
}
// 返回当前栈大小
public int size() {
return size;
}
// 清空栈
public void clear() {
top = -1;
size = 0;
}
}
```
阅读全文