隊列(Queue)是一種先進先出(FIFO)的線性數據結構,插入操作在隊尾(rear)進行,刪除操作在隊首(front)進行。
20170808150216106124006.png
2017080815021733642971.png
隊列ADT(抽象數據類型)一般提供以下接口:
① Queue() 創建隊列
② enqueue(item) 向隊尾插入項
③ dequeue() 返回隊首的項,并從隊列中刪除該項
④ empty() 判斷隊列是否為空
⑤ size() 返回隊列中項的個數
20170808150217386840423.png
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Created by xuehz on 2017/8/8
class Queue():
def __init__(self,size):
self.queue = []
self.size = size
self.head = -1
self.tail = -1
def Empty(self):
if self.head == self.tail:
return True
else:
return False
def Full(self):
if self.tail - self.head +1 == self.size:
return True
else:
return False
def enQueue(self, content):
if self.Full():
print 'Queue is Full'
else:
self.queue.append(content)
self.tail = self.tail+1
def outQueue(self):
if self.Empty():
print 'Queue is Empty'
else:
self.head = self.head+1
class Queue:
def __init__(self):
self.items = []
def enqueue(self, item):
self.items.append(item)
def dequeue(self):
return self.items.pop(0)
def empty(self):
return self.size() == 0
def size(self):
return len(self.items)