python: data structure - Queue

  • if dealing with millions data, an effcient container is needed: queue
  • List: slow for inserting; Set: slow for checking, extension, searching, and soring
  • Queue: FIFO and LIFO

FIFO queues (queue)

  • used a lot in a lot of concurrent applications
  • can have bounded to some max size of memory for a queue
  • put() and get() . (note: the index of the elements in the queue starts from '1' instead of '0')
  • full() and empty()
  • elements in the queue can be different types
  • Python implements queues on top of the collections.deque data structure. Deques are advanced data structures that permits efficient access to both ends of the collection. it provides a more flexible interface than is exposed by Queue.

LIFO queues (stack)

  • use same API as FIFO queues: put() and get()
  • working with the end of a list is an efficient operation, so LifoQueue uses a standard list under the hood
  • use LifoQueue instead of List: the former supports clean concurrent access from multiple threads, if you need a stack-like behavior in a concurrent setting, a LifoQueue should be used.

Priority queues (heap)

  • get() and put() API, but return the most "important" item instead of the ordered item.
  • a common convention is to store tuples in the priority queue, where the first element in the tuple is the priority for the element, and the second element is the data. another common paradigm is to implement the __lt__ method.
  • might be used by a search engine or recommendation tools
  • almost universally implemented using the heap data structure

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值