中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python雙端隊列的原理是什么

發布時間:2021-04-30 11:34:40 來源:億速云 閱讀:153 作者:小新 欄目:編程語言

這篇文章主要介紹python雙端隊列的原理是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

1、概念

具有隊列和棧性質的數據結構。雙端隊列的要素可以從兩端彈出,限定插入和刪除操作在表的兩端進行。雙端隊列可以在隊列的任何一端進出。

2、原理

雙端隊列是一種具有隊列和棧性質的數據結構。雙端隊列的元素可以從兩端彈出,有限的插入和刪除操作可以在隊列的兩端進行。可以理解為雙端隊列可以從隊列的兩端添加和刪除元素,我們可以在創建或實例雙端隊列時指定隊列的長度或大小。當隊列滿了,我們可以反向刪除過期元素(從前刪除),然后在隊列的末尾添加新元素。

3、實例

# -- encoding: utf-8 --
# @time:     2021/4/18 11:49
# @Author:  jsonLiu
# @Email:    xxxxxxxxx@qq.com
# @file:  deque
# 雙端隊列
"""
- Deque()創建一個空的雙端隊列。它不需要參數,且會返回一個空的雙端隊列。
- addFront(item)將一個元素添加到雙端隊列的前端。它接受一個元素作為參數,沒有返回值
- addRear (item)將一個元素添加到雙端隊列的后端。它接受一個元素作為參數,沒有返回值。
- popFront()從雙端隊列的前端移除一個元素。它不需要參數,且會返回一個元素,并修改雙端隊列的內容。
- popRear()從雙端隊列的后端移除一個元素。它不需要參數,且會返回一個元素,并修改雙端隊列的內容。
- isEmpty()檢查雙端隊列是否為空。它不需要參數,且會返回一個布爾值。
- size()返回雙端隊列中元素的數目。它不需要參數,且會返回一個整數。
"""
 
 
class Deque1:
    """假設雙端隊列的后端是列表位置0處"""
 
    def __init__(self):
        self.__list = []
 
    def isEmpty(self):
        # return self.__list == []
        return not self.__list
 
    def size(self):
        return len(self.__list)
 
    def add_front(self, item):
        """添加到雙端隊列前端"""
        self.__list.append(item)
 
    def add_rear(self, item):
        """添加到雙端隊列后端"""
        self.__list.insert(0, item)
 
    def pop_front(self):
        """從雙端隊列的前端移除一個元素"""
        return self.__list.pop(len(self.__list) - 1)
        # return self.__list.pop()
 
    def pop_rear(self):
        """雙端隊列的后端移除一個元素"""
        return self.__list.pop(0)
 
 
class Deque2:
    """假設雙端隊列的前端是列表位置0處"""
 
    def __init__(self):
        self.__list = []
 
    def isEmpty(self):
        # return self.__list == []
        return not self.__list
 
    def size(self):
        return len(self.__list)
 
    def add_front(self, item):
        """添加到雙端隊列前端"""
        self.__list.insert(0, item)
 
    def add_rear(self, item):
        """添加到雙端隊列后端"""
        self.__list.append(item)
 
    def pop_front(self):
        """從雙端隊列的前端移除一個元素"""
        return self.__list.pop(0)
 
    def pop_rear(self):
        """雙端隊列的后端移除一個元素"""
        # return self.__list.pop()
        return self.__list.pop(len(self.__list) - 1)
 
 
if __name__ == '__main__':
    d = Deque2()
    # d = Deque1()
    print(d.isEmpty())  # True
    d.add_rear(4)
    d.add_rear(3)
    d.add_front(2)
    d.add_front(1)
    print(d.size())  # 4
 
    d.add_rear(5)
    print(d.pop_rear())
    print(d.pop_front())

以上是“python雙端隊列的原理是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临高县| 永兴县| 延寿县| 循化| 虹口区| 巴林左旗| 怀安县| 鸡泽县| 彭阳县| 呈贡县| 准格尔旗| 元阳县| 莱芜市| 锦屏县| 伊金霍洛旗| 左云县| 徐闻县| 塔城市| 古交市| 安乡县| 普宁市| 合阳县| 凤山市| 北京市| 麻阳| 酉阳| 聂拉木县| 乌兰县| 西贡区| 新绛县| 准格尔旗| 徐水县| 昭苏县| 云阳县| 明光市| 法库县| 两当县| 田阳县| 本溪市| 玉溪市| 宁蒗|