新建一个顺序栈,栈中每个元素的属性有id和name,实现入栈和出栈等操作。
时间: 2024-10-13 09:05:20 浏览: 27
新建一个顺序栈,首先我们需要定义一个`StackElement`类,它包含`id`和`name`两个属性:
```java
class StackElement {
int id;
String name;
public StackElement(int id, String name) {
this.id = id;
this.name = name;
}
// 如果需要,可以提供getters和setters方法
public int getId() { return id; }
public String getName() { return name; }
}
```
接下来,我们创建一个`Stack`类,用于实现入栈(push)、出栈(pop)和其他基本操作:
```java
import java.util.ArrayList;
public class Stack<T extends StackElement> {
private ArrayList<T> elements;
public Stack() {
elements = new ArrayList<>();
}
// 入栈操作
public void push(T element) {
elements.add(element);
}
// 出栈操作(如果栈非空)
public T pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
T topElement = elements.get(elements.size() - 1);
elements.remove(elements.size() - 1);
return topElement;
}
// 判断栈是否为空
public boolean isEmpty() {
return elements.isEmpty();
}
// 返回栈顶元素(但不会移除),用于查看栈顶而不影响栈
public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return elements.get(elements.size() - 1);
}
// 添加其他辅助方法,如查看栈顶元素但不删除(peekWithoutRemove)等
//
阅读全文