Python-队列



注:当front == rear时,判断为空队列!
class Queue:
def __init__(self, size=100):
self.queue = [0 for _ in range(size)]
self.size = size
self.rear = 0 # 队尾指针
self.front = 0 # 队首指针
def push(self, element):
if not self.is_filled():
self.rear = (self.rear + 1) % self.size
self.queue[self.rear] = element
else:
raise IndexError("Queue is filled")
def pop(self):
if not self.is_empty():
self.front = (self.front + 1) % self.size
return self.queue[self.front]
else:
raise IndexError("Queue is empty")
# 判断队空
def is_empty(self):
return self.rear == self.front
# 判断队满
def is_filled(self):
return (self.rear + 1) % self.size == self.front
q = Queue(5)
for i in range(4):
q.push(i)
print(q.pop())
q.push(4)
print(q.queue)
队列的内置模块:
from collections import deque
q = deque([1,2,3,4,5], 5) # 创建队列,不传参数默认为空
# 参数1 :初始队列
# 参数2: 队列的最大长度,如果超过则队首自动出队
q.append(6) # 队尾进队
print(q.popleft()) # 队首出队
# 用于双向队列
print(q)
q.appendleft(1) # 队首进队
print(q)
q.pop() # 队尾出队
print(q)
浙公网安备 33010602011771号