用Java语言编写一个连续存储的栈,并实现入栈出栈等操作
时间: 2024-12-19 07:15:39 浏览: 5
Java实现栈和队列面试题
在Java中,我们可以创建一个基于数组的简单连续存储栈实现。这里是一个基本的栈(Stack)类的示例,包含了push(入栈)、pop(出栈)以及查看栈顶元素peek的操作:
```java
public class ArrayBasedStack {
private int[] stack;
private int top; // 栈顶指针
public ArrayBasedStack(int capacity) {
stack = new int[capacity];
top = -1; // 初始化栈顶为空
}
// 入栈方法,将元素添加到栈顶
public void push(int value) {
if (top == stack.length - 1) { // 如果栈满,则需要扩容
resize(2 * stack.length); // 新建两倍容量的数组
}
stack[++top] = value;
}
// 出栈方法,返回并移除栈顶元素
public int pop() {
if (isEmpty()) { // 空栈异常处理
throw new EmptyStackException();
}
return stack[top--]; // 返回栈顶值,然后移动指针
}
// 查看栈顶元素,不移除
public int peek() {
if (isEmpty()) {
throw new EmptyStackException();
}
return stack[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 私有方法,用于栈扩容
private void resize(int newSize) {
int[] temp = new int[newSize];
for (int i = 0; i <= top; i++) {
temp[i] = stack[i];
}
stack = temp;
}
}
```
阅读全文