用单链表实现栈 Java
时间: 2024-12-02 07:21:15 浏览: 21
在Java中,我们可以使用单向链表来实现一个栈(Stack)。这是因为链表的特点支持高效的插入和删除操作,特别是对于在链表头部添加元素(压栈,push),以及从链表头部移除元素(弹栈,pop)的需求。
以下是简单的单链表栈实现:
```java
// 链表节点定义
class Node {
int data;
Node next;
public Node(int value) {
this.data = value;
this.next = null;
}
}
// 栈类
class StackUsingLinkedList {
private Node top; // 栈顶节点
// 入栈(push)
public void push(int value) {
Node newNode = new Node(value);
newNode.next = top;
top = newNode;
}
// 出栈(pop)
public int pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
int poppedValue = top.data;
top = top.next;
return poppedValue;
}
// 查看栈顶元素(peek)
public int peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return top.data;
}
// 判断是否为空
public boolean isEmpty() {
return top == null;
}
}
```
在这个实现中,`push`方法将新元素添加到链表顶部,`pop`方法则删除并返回顶部元素,`peek`用于查看但不删除顶部元素,`isEmpty`检查链表是否为空。
阅读全文