队列一个重要的数据结构,也比较简单。python内置了队列的实现,十分好用,
下面就是一些例子:
import Queue
q = Queue.Queue() #普通队列
for i in range(5):
q.put(i)
while not q.empty():
print q.get()
后进先出队列,这个有点像栈,也可以当作栈来用。
q = Queue.LifoQueue()
for i in range(5):
q.put(i)
while not q.empty():
print q.get()
优先队列,可以给队列里的元素设置优先级,弹出时优先级高的先弹出。
q = Queue.PriorityQueue()
q.put([2,'hello'])
q.put([4,'good'])
print q.get()
class Job():
def __init__(self,describe,priority):
self.describe = describe
self.priority = priority
def __cmp__(self, other):
return cmp(self.priority,other.priority)
q1 = Queue.PriorityQueue(0)
q1.put( Job(3, 'Mid-level job'))#也可以传入对象
q1.put( Job(10, 'Low-level job'))
q1.put( Job(1, 'Important job'))
print q1.get().describe