91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

利津县| 本溪| 徐闻县| 筠连县| 丹凤县| 奎屯市| 略阳县| 郓城县| 凉城县| 遵义县| 芦溪县| 六枝特区| 浙江省| 黑水县| 梨树县| 丹寨县| 容城县| 资溪县| 长寿区| 庆阳市| 长白| 西和县| 皋兰县| 乐亭县| 孝义市| 和龙市| 日照市| 阜新市| 鲜城| 连南| 永胜县| 东至县| 满城县| 安顺市| 汾西县| 朝阳区| 黄石市| 南投市| 天柱县| 清水县| 昌邑市|