欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

队列

程序员文章站 2022-06-01 12:12:42
...

同栈一样,队列也可以用顺序表或链表实现。

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)

相关标签: 随笔