• 3.12.Python实现队列

    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