编写程序任意输入栈长度和栈中的元素值,构造一个链栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作。
时间: 2024-11-03 21:19:28 浏览: 22
链栈是一种基于链表实现的数据结构,它允许我们在栈的一端插入(入栈)和删除(出栈)元素。下面是创建链栈并进行基本操作的步骤:
1. **初始化**:首先,你需要定义一个节点类(Node),包含两个属性,一个是数据元素(data),另一个是指向下一个节点的引用(next)。然后,创建链栈类(Stack),维护一个指向栈顶节点的指针(top)。
```python
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
```
2. **清空**:设置栈顶指针为空,即`self.top = None`。
3. **销毁**:链栈本身不需要显式销毁,因为当栈里没有节点时,就已经自然“销毁”了。但是如果你需要释放内存,可以将栈的所有节点置为None。
4. **入栈(push)**:新节点作为当前栈顶,并更新指针。
```python
def push(self, value):
new_node = Node(value)
if not self.is_empty():
new_node.next = self.top
self.top = new_node
```
5. **出栈(pop)**:如果栈非空,移除栈顶节点,返回其数据,同时更新栈顶指针。
```python
def pop(self):
if self.is_empty():
return None
popped_value = self.top.data
self.top = self.top.next
return popped_value
```
6. **取栈顶元素(peek)**:查看但不移除栈顶元素,返回其数据。
```python
def peek(self):
if self.is_empty():
return None
return self.top.data
```
7. **判断是否为空(is_empty)**:检查栈顶是否为None。
```python
def is_empty(self):
return self.top is None
```
阅读全文