题目
队列是一种常见的数据结构,其特点是 先进先出
,并且只能从队尾进队头出,也就是说最先放进去的元素,能够最先取出来。
请使用 列表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