Python編程題31--用列表實(shí)現(xiàn)隊(duì)列

題目

隊(duì)列是一種常見的數(shù)據(jù)結(jié)構(gòu),其特點(diǎn)是 先進(jìn)先出,并且只能從隊(duì)尾進(jìn)隊(duì)頭出,也就是說最先放進(jìn)去的元素,能夠最先取出來。

請(qǐng)使用 列表list 模擬實(shí)現(xiàn)隊(duì)列的下列操作:

  • push(x) -- 將元素 x 推到隊(duì)列的末尾
  • pop() -- 從隊(duì)列開頭移除元素
  • peek() -- 返回隊(duì)列開頭的元素
  • empty() -- 判斷隊(duì)列是否為空
  • size() -- 獲取隊(duì)列的長度

說明:假設(shè)每次調(diào)用 pop 和 peek 都能保證隊(duì)列不為空。

代碼實(shí)現(xiàn)

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)

測(cè)試過程

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

執(zhí)行代碼后,得到如下結(jié)果:

11
2
False
22
0
True

更多Python編程題,等你來挑戰(zhàn):Python編程題匯總(持續(xù)更新中……)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容