題目
隊列是一種常見的數據結構,其特點是 先進先出
,並且只能從隊尾進隊頭出,也就是說最先放進去的元素,能夠最先取出來。
請使用 列表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