Python编程题31--用列表实现队列

题目

队列是一种常见的数据结构,其特点是 先进先出,并且只能从队尾进队头出,也就是说最先放进去的元素,能够最先取出来。

请使用 列表list 模拟实现队列的下列操作:

  • push(x) -- 将元素 x 推到队列的末尾
  • pop() -- 从队列开头移除元素
  • peek() -- 返回队列开头的元素
  • empty() -- 判断队列是否为空
  • size() -- 获取队列的长度

说明:假设每次调用 pop 和 peek 都能保证队列不为空。

代码实现

class MyQueue:

    def __init__(self):
        self.q = []

    def push(self, x):
        self.q.append(x)

    def pop(self):
        self.q.pop(0)

    def peek(self):
        return self.q[0]

    def empty(self):
        return self.q == []

    def size(self):
        return len(self.q)

测试过程

if __name__ == '__main__':
    queue = MyQueue()
    queue.push(11)  # 入队
    queue.push(22)  # 入队
    print(queue.peek())
    print(queue.size())
    queue.pop()  # 出队
    print(queue.empty())
    print(queue.peek())
    queue.pop()  # 出队
    print(queue.size())
    print(queue.empty())

执行代码后,得到如下结果:

11
2
False
22
0
True
上一篇:Java源码学习之并发编程-多线程(三)-sleep和wait


下一篇:双指针问题的算法