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

溫馨提示×

溫馨提示×

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

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

LeetCode如何實現循環隊列

發布時間:2021-12-15 11:18:03 來源:億速云 閱讀:170 作者:小新 欄目:大數據

小編給大家分享一下LeetCode如何實現循環隊列,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

隊列是典型的先進先出(FIFO)結構,插入(insert)也叫做入隊(enqueue),新元素從隊尾插入。刪除(delete)也叫做出隊(dequeue),從隊首移除

LeetCode如何實現循環隊列

LeetCode如何實現循環隊列  
 

隊列

隊列可以利用Python中的數組實現,包含如下函數:

  • enqueue:入隊

  • dequeue:出隊

  • isEmpty:判斷是否為空

  • size:隊列長度(元素個數)

LeetCode如何實現循環隊列

LeetCode如何實現循環隊列  
 

循環隊列

循環隊列也是一種線性結構,同樣基于FIFO原則,只不過隊尾被連接在了隊首之后形成了一個循環,也被稱之為“環形緩沖器”

循環隊列的一個優點在于:可以利用這個隊列之前用過的空間

循環隊列是要設置總長度容量的

循環隊列包含的函數:

  • MyCircularQueue(k):構造一個長度為k的循環隊列

  • Front:獲取隊首元素

  • Rear:獲取隊尾元素

  • enqueue(value):向循環隊列插入一個元素,若成功則返回True

  • dequeue():從循環隊列中刪除一個元素,成功則返回True

  • isFull():檢查循環隊列是否為已滿

  • isEmpty():判斷循環隊列是否為空

示例:

LeetCode如何實現循環隊列

 

實現思路

LeetCode如何實現循環隊列

首先循環隊列是個“環”,利用python的數組模擬,通過操作數組的索引構建一個虛擬的環。對于循環隊列而言,總長度是固定的(即數組的容量是固定的),任何位置都可以是隊列的隊首利用隊首索引可以利用如下公式推導出隊尾索引

tail_index = (head_index + count -1) % capacity

公式中的參數:

  • tail_index:隊尾索引

  • head_index:隊首索引

  • count:隊列長度(即實際元素個數)

  • capacity:數組容量

LeetCode如何實現循環隊列

 
 

循環隊列小結

1. 隊尾索引由隊頭索引公式得到

tail_index = (head_index + count -1) % capacity
2. 設置數組容量  capacity
3. 隊列長度  count  (實際元素個數)
4.  “循環”實現的關鍵    % capacity
5. “插入”是隊尾移動,“刪除”是隊頭移動


以上是“LeetCode如何實現循環隊列”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

芜湖市| 格尔木市| 陆川县| 辽中县| 南岸区| 会东县| 夏河县| 乌鲁木齐县| 肥乡县| 新和县| 腾冲县| 潜山县| 阳曲县| 泸西县| 扬州市| 西青区| 桂东县| 卓资县| 镇康县| 临泽县| 尚义县| 聊城市| 大荔县| 南涧| 曲阳县| 新野县| 天柱县| 城步| 合作市| 禄劝| 宜良县| 资阳市| 会东县| 天门市| 淮滨县| 安顺市| 汝阳县| 新绛县| 安康市| 邹平县| 克拉玛依市|