用Java语言编写一个栈数据结构,并实现入栈出栈等操作
时间: 2024-12-19 19:16:24 浏览: 18
在Java中,你可以使用内置的`java.util.Stack`类来创建一个简单的栈数据结构,或者自定义一个基于数组或链表的栈。这里我会展示一个简单的数组实现:
```java
public class MyStack {
private int[] stackData;
private int top; // 栈顶指针
public MyStack(int size) {
stackData = new int[size];
top = -1;
}
// 入栈操作 (push)
public void push(int value) {
if (top < stackData.length - 1) {
top++;
stackData[top] = value;
} else {
throw new StackOverflowError("Stack is full.");
}
}
// 出栈操作 (pop)
public int pop() {
if (top >= 0) {
int value = stackData[top];
top--;
return value;
} else {
throw new EmptyStackException("Stack is empty.");
}
}
// 查看栈顶元素 (peek)
public int peek() {
if (top >= 0) {
return stackData[top];
} else {
throw new EmptyStackException("Stack is empty.");
}
}
// 判断栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 判断栈是否已满
public boolean isFull() {
return top == stackData.length - 1;
}
}
```
在这个例子中,我们定义了一个名为`MyStack`的类,它有私有的数组`stackData`用于存储数据,以及一个表示栈顶位置的变量`top`。类中有`push`、`pop`、`peek`、`isEmpty`和`isFull`方法,分别实现了栈的基本操作。
阅读全文