3.12.Python实现队列

我们为了实现队列抽象数据类型创建一个新类。和前面一样,我们将使用列表集合来作为构建队列的内部表示。

我们需要确定列表的哪一端作为队首,哪一端作为队尾。Listing 1 所示的实现假定队尾在列表中的位置为 0。这允许我们使用列表上的插入函数向队尾添加新元素。弹出操作可用于删除队首的元素(列表的最后一个元素)。回想一下,这也意味着入队为  3.12.Python实现队列  - 图1 ,出队为  3.12.Python实现队列  - 图2

  1. class Queue:
  2. def __init__(self):
  3. self.items = []
  4. def isEmpty(self):
  5. return self.items == []
  6. def enqueue(self, item):
  7. self.items.insert(0,item)
  8. def dequeue(self):
  9. return self.items.pop()
  10. def size(self):
  11. return len(self.items)

Listing 1

进一步的操作这个队列产生如下结果:

  1. >>> q.size()
  2. 3
  3. >>> q.isEmpty()
  4. False
  5. >>> q.enqueue(8.4)
  6. >>> q.dequeue()
  7. 4
  8. >>> q.dequeue()
  9. 'dog'
  10. >>> q.size()
  11. 2