数据结构栈的实现弹出元素
时间: 2024-10-21 16:15:19 浏览: 42
栈是一种线性数据结构,遵循“先进后出”(Last In First Out, LIFO)的原则。当你需要弹出栈顶元素时,通常是数据结构操作的基本操作之一。下面是基于数组和链表两种常见实现方式:
1. 数组实现:
- 对于数组栈,你可以通过索引来访问元素。当要弹出栈顶(最后一个添加的)元素时,可以直接将数组的最后一个元素赋值给另一个变量,并减小栈顶指针(数组长度减一)。
```python
def pop_array_stack(arr, top):
if top < 0 or top >= len(arr):
return None # 如果栈为空或越界,返回None
popped = arr[top] # 弹出栈顶元素
arr[top] = None # 清空位置
top -= 1 # 更新栈顶指针
return popped
# 使用示例
stack = [1, 2, 3]
top = len(stack) - 1 # 获取栈顶
popped_element = pop_array_stack(stack, top)
```
2. 链表实现:
- 链表栈则更简单,每次弹出操作都是删除链表的第一个节点,然后返回这个节点的数据。
```python
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class Stack:
def __init__(self):
self.top = None
def push(self, data):
new_node = Node(data)
new_node.next = self.top
self.top = new_node
def pop(self):
if not self.is_empty():
popped_data = self.top.data
self.top = self.top.next
return popped_data
else:
return None
stack = Stack()
# ... 添加元素至堆叠
popped_element = stack.pop()
```
阅读全文