用数组实现队列的向队列尾部添加元素和从队头弹出元素
时间: 2024-10-07 20:03:19 浏览: 36
在数组中实现队列,通常采用的是“先进先出”(First In First Out, FIFO)的数据结构规则。主要有两个操作:
1. **向队尾添加元素**(enqueue 或 push):
- 当数组空间还有余量时,将新元素添加到数组的末尾。如果数组已满,可以考虑动态扩容,比如创建一个新的更大容量的数组,然后将原数组的所有元素复制过去,最后添加新的元素。
```python
def enqueue(arr, item):
if len(arr) < capacity: # 如果队列未满
arr.append(item)
else: # 队列已满,需要扩容
new_arr = [None] * (2 * capacity) # 创建两倍大小的新数组
for i in range(len(arr)):
new_arr[i] = arr[i]
arr = new_arr # 将旧数组内容复制到新数组
arr.append(item) # 然后添加新元素
```
2. **从队头弹出元素**(dequeue 或 pop):
- 如果队列非空,从数组的第一个位置移除并返回元素。注意,数组的第一个元素就是队列的第一个元素。
```python
def dequeue(arr):
if len(arr) > 0: # 如果队列非空
return arr.pop(0) # 移除并返回第一个元素
else: # 队列为空,抛出异常或返回特定值
raise IndexError("Queue is empty") # 根据需求处理这种情况
```
阅读全文