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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章