数据结构之队列(Queue)
一、队列的结构
队列是一种存储数据的容器,支持按照先进先出(FIFO,First In First Out)的顺序,对数据进行插入,访问,删除等操作。
队列只支持在头部进行删除操作,在尾部进行插入操作,因此任何时候访问、删除的都是该队列最先插入的数据,最后插入的数据永远排在最后
二、一个队列对象包含的操作
# Queue() 创建一个空的队列
# enqueue(item) 往队列中添加一个item元素
# dequeue() 从队列头部删除一个元素
# is_empty() 判断一个队列是否为空
# size() 返回队列的大小
三、实现一个队列
class MyQueue:
def __init__(self):
self.queue = []
def enqueue(self, item):
'''
在队列尾部添加一个item
:param item:
:return:
'''
self.queue.append(item)
def dequeue(self):
'''
从队列头部删除一个item
:return:
'''
if not self.queue:
return None
else:
self.queue.pop(0)
def is_empty(self):
'''
判断队列是否为空
:return:
'''
return self.queue == []
def size(self):
'''
返回队列item个数
:return:
'''
return len(self.queue)
|