新建一个顺序栈,栈中每个元素的属性有id和name,实现入栈和出栈等操作。
时间: 2024-10-13 12:05:43 浏览: 34
新建一个顺序栈(也称为线性堆栈),你可以用数组或动态数组来实现。首先,你需要定义一个栈节点(StackNode),包含`id`和`name`两个属性:
```java
public class StackNode {
int id;
String name;
public StackNode(int id, String name) {
this.id = id;
this.name = name;
}
}
```
然后创建一个顺序栈类,包含一个存储栈元素的数组和栈顶指针:
```java
import java.util.ArrayList;
public class SequentialStack {
private ArrayList<StackNode> stackElements;
private int top;
public SequentialStack() {
stackElements = new ArrayList<>();
top = -1;
}
// 入栈操作 - 添加新的栈节点
public void push(StackNode newNode) {
if (top < stackElements.size() - 1) {
top++;
stackElements.add(newNode);
} else {
System.out.println("Stack is full, cannot push.");
}
}
// 出栈操作 - 删除并返回栈顶元素
public StackNode pop() {
if (isEmpty()) {
return null;
}
StackNode poppedNode = stackElements.get(top);
top--;
stackElements.remove(top);
return poppedNode;
}
// 查看栈顶元素
public StackNode peek() {
if (isEmpty()) {
return null;
}
return stackElements.get(top);
}
// 检查栈是否为空
public boolean isEmpty() {
return top == -1;
}
// 返回栈的大小
public int size() {
return top + 1;
}
}
```
在这个实现中,`push()`方法用于将新元素添加到顶部,`pop()`方法移除并返回顶部元素,`peek()`则只查看顶部元素但不删除,`isEmpty()`检查栈是否为空,`size()`获取栈中元素的数量。
阅读全文