队列

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

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值