Python 實現隊列

雖然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()

測試結果:
q

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章