日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数据结构--队列、双端队列实际举例详解(Python代码)

發(fā)布時間:2025/3/15 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构--队列、双端队列实际举例详解(Python代码) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
讓這個可愛的寶藏女孩在努力的道路上與你一起同行!
如有轉載,請注明出處(如不注明,盜者必究)

目錄

    • 一、隊列
      • 1.1舉例
      • 1.2代碼
      • 1.3運行結果
    • 二、雙端隊列
      • 2.1舉例
      • 2.2代碼
      • 2.3運行結果

一、隊列

  • 一種特殊的線性表,特殊之處在于它能在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作。簡而言之,就像排隊一樣,先進先出:FIFO(First In First Out)
  • 進行添加操作的端稱為隊尾,進行刪除操作的端稱為隊頭。
  • 1.1舉例

    第一個就隊頭,第二個就是隊尾,隊頭進行刪除操作,隊尾進行添加操作。比如說我們早上去買包子,人多了就得排隊,買包子的人是從隊尾開始排(添加),你排第一個的時候就可以付錢拿著包子走人了(刪除)。

    1.2代碼

    #coding=utf-8class Queue(object):'''enter_queue():往隊列末尾添加一個元素delete_queue():從隊列頭部刪除一個元素is_empty():判空操作size():返回隊列的大小'''def __init__(self):# 空的列表,保存隊列數(shù)據(jù)self.list = []def enter_queue(self,item):# 往隊列末尾添加一個元素self.list.append(item)def delete_queue(self):# 從隊列頭部刪除一個元素return self.list.pop(0)# return self.list,這是返回列表def is_empty(self):# 判空操作return self.list == []def size(self):# 返回隊列的大小return len(self.list)# 數(shù)據(jù)測試 if __name__ == "__main__":a = Queue()a.enter_queue("第一個排隊== 第一個買到包子的人")a.enter_queue("第二個排隊== 第二個買到包子的人")a.enter_queue("第三個排隊== 第三個買到包子的人")print(a.delete_queue())print(a.delete_queue())print(a.delete_queue())

    1.3運行結果

    二、雙端隊列

    其兩端都可以入列和出列的數(shù)據(jù)結構,如下圖所示,隊尾(rear)和隊頭(front)都可以加入和移出數(shù)據(jù)
    注意:其具有隊列的性質(zhì)

    2.1舉例

    (想來想去都不知道用什么例子好,這是我目前能夠想到的最好的一個例子了嗚嗚嗚)
    想象一下這是一個酒店吧,它有兩個門,一個前門,一個后門,前門可以進,也可以出,后門可以進,也可以出

    2.2代碼

    #coding=utf-8""" add_front():從隊列頭部加入一個元素 add_rear():從隊列尾部加入一個元素 remove_front():從隊列頭部刪除一個元素 remove_rear():從隊列尾部刪除一個元素 is_empty(): 判空操作 size():返回隊列的大小 """class Double_ended_queue():def __init__(self):# 空的列表,保存隊列數(shù)據(jù)self.list = []def add_front(self, item):# 從隊列頭部加入一個元素self.list.insert(0,item)def remove_front(self):# 從隊列頭部刪除一個元素return self.list.pop(0)def add_rear(self, item):# 從隊列尾部添加一個元素self.list.append(item)def remove_rear(self):# 從隊列尾部刪除一個元素return self.list.pop()def is_empty(self):# 判空操作return self.list == []def size(self):# 返回隊列的大小return len(self.list)# 數(shù)據(jù)測試if __name__ == "__main__":a =Double_ended_queue()a.add_front("前門進的第一個人")a.add_front("前門進的第二個人")a.add_front("前門進的第三個人")a.add_rear("后門進的第一個人")a.add_rear("后門進的第二個人")a.add_rear("后門進的第三個人")# 從隊尾出隊print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())print(a.remove_rear())

    https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
    歡迎關注微信公眾號:寶藏女孩的成長日記
    讓這個可愛的寶藏女孩在努力的道路上與你一起同行!
    如有轉載,請注明出處(如不注明,盜者必究)

    2.3運行結果

    總結

    以上是生活随笔為你收集整理的数据结构--队列、双端队列实际举例详解(Python代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。