栈和队列的实现与应用源代码
时间: 2024-10-13 19:11:06 浏览: 35
栈和队列源代码
栈和队列都是线性数据结构,它们的主要区别在于元素的添加和删除操作。栈是一种后进先出(LIFO)的数据结构,常用的应用场景包括函数调用堆栈、表达式求值等。而队列则是先进先出(FIFO)的数据结构,常用于任务调度、消息传递等。
下面是一个简单的栈和队列的Python实现,使用内置的列表作为底层容器:
**栈的实现 (Stack):**
```python
class Stack:
def __init__(self):
self.stack = []
# 入栈
def push(self, item):
self.stack.append(item)
# 出栈
def pop(self):
if not self.is_empty():
return self.stack.pop()
else:
return None
# 查看顶部元素但不移除
def peek(self):
if not self.is_empty():
return self.stack[-1]
else:
return None
# 判断是否为空
def is_empty(self):
return len(self.stack) == 0
```
**队列的实现 (Queue):**
```python
from collections import deque
class Queue:
def __init__(self):
self.queue = deque()
# 入队
def enqueue(self, item):
self.queue.append(item)
# 出队
def dequeue(self):
if not self.is_empty():
return self.queue.popleft()
else:
return None
# 查看队首元素但不移除
def front(self):
if not self.is_empty():
return self.queue[0]
else:
return None
# 判断是否为空
def is_empty(self):
return len(self.queue) == 0
```
以上代码展示了基本的操作如入栈、出栈、入队、出队等。在实际应用中,你可能会根据需求选择更高效的数据结构实现,例如Python的`collections.deque`对于队列操作有很好的性能支持。
阅读全文