概念
队列(queue)是一种具有先进先出特征的线性数据结构,元素的添加只能在一端进行,元素的删除只能在另一端进行。类似于超市排队买单,先来的先结账,然后离开队伍。比较官方的说法是新来的只能排在队伍最后进行入队,出队就从队伍第一个开始。
但在实际操作中(见以下代码),入队(enqueue()方法)是从索引值为0的地方即队列头部进行元素的添加,而出队则是使用pop()方法,即从队列尾部进行元素弹出(删除)。
常用方法
- is_empty() 判断队列是否为空
- enqueue(item) 元素item入队
- dequeue() 元素出队
- size() 队列大小
class Queue():
"""队列"""
def __init__(self):
"""初始化队列"""
self.items = []
def is_empty(self):
"""判断队列是否为空"""
return self.items == []
def enqueue(self,item):
"""进队列"""
self.items.insert(0,item)
def dequeue(self):
"""出队列"""
return self.items.pop()
def size(self):
"""队列元素个数"""
return len(self.items)
if __name__ == '__main__':
q = Queue()
q.enqueue(1)
q.enqueue('a')
q.enqueue('asf')
q.enqueue('你好')
q.enqueue('%&(')
print(q.size())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())
print(q.dequeue())