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

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

優先級隊列詳解

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

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

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

分配優先級值

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

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

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

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

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

優先隊列的實現

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

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

優先隊列操作

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

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

1. 將元素插入優先隊列

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

在樹的末尾插入新元素。

堆肥樹。

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

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

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

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

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

選擇要刪除的元素。

與最后一個元素交換它。

刪除最后一個元素。

堆肥樹。

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

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

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

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

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

對于最大堆和最小堆

返回根節點

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

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

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 理论一级片 | 麻豆久久精品免费看国产 | 亚洲精品久久久久久久777 | 午夜精品久久久久久毛片 | 久久网综合 | 国产你懂的 | 性感毛片 | 蜜桃日本一道无卡不码高清 | 欧美精品成人免费视频 | 国产精品天天操 | 蕾丝视频永久在线入口香蕉 | 久久99精品久久久久久青青日本 | 久久国产网| 亚洲一区毛片 | 欧美xxxx成人免费网站 | 四虎影视在线看免费观看 | 久久精品影视 | 国产欧美一区二区成人影院 | 九九热在线观看视频 | 精品国产日韩久久亚洲 | 图片专区亚洲欧美另类 | 久久噜| 亚洲一区中文字幕在线 | 日韩欧美中文字幕在线播放 | 一级寡妇乱色毛片全18 | 婷婷色综合久久 | 亚洲精品国自产拍影院 | 中文在线免费不卡视频 | 在线观看国产精品入口 | 欧美日韩高清在线观看 | 98色花堂国产精品首页 | 久久99精品久久久久久秒播放器 | 奇米影视77 | 一级毛片牲交大片 | 停停色| 国产高清精品久久久久久久 | 日韩毛片高清在线看 | 一级毛片人与动免费观看 | 欧美xxx4k精品hd | 久久欧美| 亚洲一区综合在线播放 |