使用数组实现栈和队列
时间: 2024-10-12 22:08:54 浏览: 31
在Java中,我们可以使用数组来简单地实现栈(Stack)和队列(Queue)。这里我会分别介绍这两种数据结构的基本概念以及它们如何利用数组实现。
**1. 栈(Stack):**
栈是一种后进先出(LIFO,Last In, First Out)的数据结构。最常用的方法是使用数组的顶部元素进行操作。以下是一个简单的基于数组实现的栈:
```java
public class ArrayBasedStack {
private int[] stackArray;
private int top;
// 初始化一个容量为n的栈
public ArrayBasedStack(int n) {
stackArray = new int[n];
top = -1;
}
// 入栈 (push)
public void push(int value) {
if (isFull()) {
throw new StackOverflowError("Stack is full");
}
stackArray[++top] = value;
}
// 出栈 (pop)
public int pop() {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
return stackArray[top--];
}
// 查看栈顶元素但不移除 (peek)
public int peek() {
if (isEmpty()) {
throw new EmptyStackException("Stack is empty");
}
return stackArray[top];
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == stackArray.length - 1;
}
}
```
阅读全文