同栈一样,队列也可以用顺序表或链表实现。
1.Queue() 创建一个空的队列
enqueue(item) 往队列中添加一个item元素
dequeue() 从队列头部删除一个元素
is_empty() 判断一个队列是否为空
size() 返回队列的大小
2.队列的入和出的方法选择
***如果添加元素比较多,删除元素比较少 ,则选择添加元素时间复杂度为O(1),删除元素时间复杂度为O(n)的方法。
def enqueue(self):
""向队列添加一个item元素"""
self.__list.append(item) #在队列尾部添加元素 时间复杂度为O(1)
def dequeue(self):
"""从队列删除一个元素"""
return self.__list.pop(0) #在队列头部删除一个元素 时间复杂度为O(n)
如果删除元素比较多,添加元素比较少,则选择删除元素时间复杂度为O(1),添加元素时间复杂度为O(n)的方法。
def enqueue(self):
"""向队列添加一个item元素"""
self.__list.insert(0, item) #在队列头部添加一个元素, 时间复杂度为O(n)
def dequeue(self):
"""从队列删除一个元素"""
return self.__list.pop() #在队列尾部删除一个元素,时间复杂度为O(1)
但是不管怎样2中方法时间复杂度总为O(1)+O(n)即O(n)