大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 優先級隊列詳解

優先級隊列詳解

更新時間:2021-11-01 11:26:41 來源:動力節點 瀏覽1653次

優先級隊列是一種特殊類型的隊列,其中每個元素都與一個優先級值相關聯。并且,元素根據其優先級提供服務。即,首先服務更高優先級的元素。

但是,如果出現具有相同優先級的元素,則按照它們在隊列中的順序提供服務。

分配優先級值

通常,在分配優先級時考慮元素本身的值。例如,

具有最高值的元素被認為是最高優先級的元素。但是,在其他情況下,我們可以假設具有最低值的元素作為最高優先級元素。

我們還可以根據需要設置優先級。

優先隊列和普通隊列的區別

在隊列中,執行先進先出規則,而在優先級隊列中,根據優先級刪除值。首先刪除具有最高優先級的元素。

優先隊列的實現

優先隊列可以使用數組、鏈表、堆數據結構或二叉搜索樹來實現。在這些數據結構中,堆數據結構提供了優先隊列的有效實現。

因此,我們將在本教程中使用堆數據結構來實現優先級隊列。在以下操作中實現了最大堆。

優先隊列操作

優先級隊列的基本操作是插入、移除和查看元素。

在研究優先隊列之前,請參考堆數據結構以更好地理解二叉堆,因為它用于實現本文中的優先隊列。

1. 將元素插入優先隊列

通過以下步驟將元素插入優先級隊列(最大堆)。

在樹的末尾插入新元素。

堆肥樹。

將元素插入優先級隊列的算法(最大堆)

如果沒有節點,則創建一個新節點。否則(一個節點已經存在)在末尾插入新節點(從左到右的最后一個節點。)

堆化數組對于最小堆,上述算法被修改parentNode為始終小于newNode。

2. 從優先隊列中刪除一個元素

從優先級隊列(最大堆)中刪除元素的操作如下:

選擇要刪除的元素。

與最后一個元素交換它。

刪除最后一個元素。

堆肥樹。

刪除優先隊列中元素的算法(最大堆)

如果nodeToBeDeleted是leafNode,則移除節點,否則交換nodeToBeDeleted與lastLeafNode,移除noteToBeDeleted

堆化數組對于最小堆,修改了上述算法,使兩者childNodes都小于currentNode。

3.從優先隊列偷看(查找最大值/最小值)

Peek 操作返回最大堆的最大元素或最小堆的最小元素,而不刪除節點。

對于最大堆和最小堆

返回根節點

4.從優先隊列中提取Max/Min

Extract-Max 返回從最大堆中刪除后具有最大值的節點,而 Extract-Min 返回從最小堆中刪除后具有最小值的節點。

如果大家想了解更相關知識,可以關注一下動力節點的Java在線學習,里面的內容從入門到精通,對于初學者來說會有很大幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产色婷婷精品综合在线 | 欧美视频亚洲视频 | 91视频一88av| 日本人一级毛片免费完整视频 | 日本免费一区二区久久人人澡 | 久久99精品国产99久久 | 成人a毛片一级 | 国产福利在线观看视频 | 国产精品国产色综合色 | 99精品国产兔费观看久久99 | 国产成人99 | 久久伊人操 | 久久66久这里精品99 | sihu影院永久在线影院 | 亚洲一区中文字幕在线 | 2023中文字幕在线观看 | 色综合a | 国产精品色 | 日韩精品一区二区三区中文字幕 | 国产精品毛片va一区二区三区 | 奇米影视9999 | 国产高清不卡一区二区三区 | 亚洲日韩中文字幕 | 亚洲欧美日韩一区二区在线观看 | 午夜剧j | 免费在线一区二区三区 | 黄页成人免费网站 | 五月天婷婷缴情五月免费观看 | 久久亚洲精品专区蓝色区 | 曰曰鲁夜夜免费播放视频 | 精品综合久久久久久97超人该 | 中日韩欧美在线观看 | 亚洲欧美大片 | 最近中文字幕精彩视频 | 亚洲精品www久久久久久久软件 | 国产精品高清在线观看地址 | 亚洲精品日本 | 久久久网久久久久合久久久久 | 黄片毛片大全 | 欧美xxxx成人免费视频 | 久久不卡一区二区三区 |