堆栈和队列都是线性数据结构,但它们的基本操作有所不同
时间: 2024-09-21 17:07:04 浏览: 47
堆栈和队列确实是线性数据结构,但它们的操作模式有着显著的区别:
1. **栈(Stack)**: 栈是一种“后进先出”(LIFO,Last In First Out)的数据结构。这意味着最后添加到栈顶的元素将是第一个被访问或删除的元素。常见的栈操作包括压入(push),即将元素添加到顶部;弹出(pop),从顶部移除并返回元素;查看顶部元素(peek 或 top),但不移除它。
2. **队列(Queue)**: 队列则是“先进先出”(FIFO,First In First Out)的,即最先加入队列的元素会是最先被处理的。主要操作有入队(enqueue),在队尾添加元素;出队(dequeue),从队首移除并返回元素;查看队首元素(front),但同样不会移除它。
举例来说,在Python中,可以使用内置的`list`来模拟这两种数据结构:
- **栈**:
```python
stack = [] # 创建一个空栈
stack.append(1) # 压入元素
stack.append(2)
print(stack.pop()) # 弹出并返回顶部元素,输出:2
```
- **队列**:
```python
from collections import deque # 使用deque创建队列,因为它支持高效的两端操作
queue = deque()
queue.append(1) # 入队
queue.append(2)
print(queue.popleft()) # 出队并返回队首元素,输出:1
```
阅读全文