在Python中队列也可以看做是一个特殊的列表,与栈不同的是,队列一边存储数据,另一边删除数据,存数据称为入队,删数据称为出队。出入对规则是先入先出。
一、单向队列--------一边只能入队,另一边只能出队
# 队列:先进先出,由列表实现
class Queue:
"""队列"""
def __init__(self):
"""初始化"""
self.items = []
def is_empty(self):
"""判断队列是否为空"""
return self.items ==[]
# input在前,output在后
def enqueue(self, item):
"""入队"""
self.items.insert(0, item)
def dequeue(self):
"""出队"""
return self.items.pop()
def size(self):
"""返回队列大小"""
return len(self.items)
def show(self):
"""返回队列"""
return self.items
二、双向队列-----两边都可以执行入队出队。。。ennn,在Python里好像。。。跟没写一样[笑哭笑哭]
# 双端队列:队列两边都可进可出,由列表实现
class Deque:
"""双端队列"""
def __init__(self):
"""初始化"""
self.items = []
def is_empty(self):
"""判断队列是否为空"""
return self.items == []
def add_front(self, item):
"""在队列前端入队"""
self.items.append(item)
def add_rear(self, item):
"""在队列后端入队"""
self.items.insert(0, item)
def remove_front(self):
"""在队列前端出队"""
return self.items.pop()
def remove_rear(self):
"""在队列后端出队"""
return self.items.pop(0)
def size(self):
"""返回队列大小"""
return len(self.items)