编写程序实现链栈的建立、入栈、出栈、输出的基本操作
时间: 2024-10-16 08:06:53 浏览: 46
链栈是一种基于链表的数据结构,其基本操作通常包括以下几个步骤:
1. **建立链栈** (创建栈):
首先,你需要定义一个节点类,包含数据域和指向下一个节点的引用(通常是`next`)。然后,你可以定义一个链栈类,初始化时保持一个头节点为空(`top = null`)。
```java
class Node {
int data;
Node next;
}
class Stack {
private Node top;
}
```
2. **入栈 (Push)**:
当需要将元素添加到栈顶时,创建一个新的节点,存储数据,并设置新节点的`next`指向当前的栈顶。然后更新栈顶指针。
```java
void push(int value) {
Node newNode = new Node();
newNode.data = value;
newNode.next = top;
top = newNode;
}
```
3. **出栈 (Pop)**:
如果栈非空,移除并返回栈顶元素,同时将栈顶指针指向下一个节点。如果栈空,则抛出异常。
```java
int pop() {
if (top == null) {
throw new EmptyStackException();
}
int value = top.data;
top = top.next;
return value;
}
```
4. **查看栈顶元素 (Peek 或者 Top)**:
只能查看栈顶元素,但不删除它。同样,如果栈空则抛出异常。
```java
int peek() {
if (top == null) {
throw new EmptyStackException();
}
return top.data;
}
```
5. **判断栈是否为空 (IsEmpty)**:
检查栈顶是否为`null`即可。
```java
boolean isEmpty() {
return top == null;
}
```
阅读全文