雖然Python有自己的隊列模塊,我們只需要在使用時引入該模塊就行,但是爲了更好的理解隊列,自己將隊列實現了一下。
隊列是一種數據結構,它的特點是先進先出,也就是說隊尾添加一個元素,隊頭移除一個元素,類似於商場排隊結賬,先來的人先接賬,後來的排在隊尾。在我們日常生活中,發送短信就會用到隊列。下面是Python實現隊列的代碼:
#!/usr/bin/python
#coding=utf-8
class Queue(object) :
def __init__(self, size) :
self.size = size
self.queue = []
def __str__(self) :
return str(self.queue)
#獲取隊列的當前長度
def getSize(self) :
return len(self.quene)
#入隊,如果隊列滿了返回-1或拋出異常,否則將元素插入隊列尾
def enqueue(self, items) :
if self.isfull() :
return -1
#raise Exception("Queue is full")
self.queue.append(items)
#出隊,如果隊列空了返回-1或拋出異常,否則返回隊列頭元素並將其從隊列中移除
def dequeue(self) :
if self.isempty() :
return -1
#raise Exception("Queue is empty")
firstElement = self.queue[0]
self.queue.remove(firstElement)
return firstElement
#判斷隊列滿
def isfull(self) :
if len(self.queue) == self.size :
return True
return False
#判斷隊列空
def isempty(self) :
if len(self.queue) == 0 :
return True
return False
下面是該隊列類.py文件的測試代碼:
if __name__ == '__main__' :
queueTest = Queue(10)
for i in range(10) :
queueTest.enqueue(i)
print queueTest.isfull()
print queueTest
print queueTest.getSize()
for i in range(5) :
print queueTest.dequeue()
print queueTest.isempty()
print queueTest
print queueTest.getSize()
測試結果: