黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

Java優先級隊列概述

更新時間:2022-10-27 09:51:30 來源:動力節點 瀏覽1604次

Java優先級隊列是與隊列有些相似的數據結構。不同之處在于元素的處理方式:

標準隊列嚴格遵循 FIFO(先進后出)原則。

優先級隊列不遵循先進先出原則。

在優先級隊列中,根據優先級從隊列中刪除元素。 這轉化為以下要求:

優先級隊列中的每個元素都必須有一個與之關聯的優先級。正如您可能已經猜到的那樣,具有最高優先級的元素會從隊列中移除(出隊)。

但是應該如何定義隊列中元素的優先級呢?

定義元素的優先級

基本上,您有兩種選擇來定義隊列中元素的優先級。你可以

根據元素的自然順序對元素進行排序。

使用自定義比較器對元素進行排序。

在本文中,我們將重點介紹如何實現優先級隊列。因此,為簡單起見,我們將根據元素的自然順序對元素進行排序。

在我們的示例中,優先級隊列將被限制為 int,因此自然排序非常好。但是,請記住,這僅用于演示目的。

如果您要在現實生活中實現優先級隊列,您可能想要使用泛型——或者像任何其他開發人員一樣使用內置的java.util.PriorityQueue。

為了使我們的示例實現符合 Java 規范,最小 元素被定義為具有最高優先級的元素。

優先隊列操作

任何隊列實現的最基本操作集是:

enqueue — 將元素插入隊列。

dequeue — 從隊列中移除一個元素。

isEmpty — 如果隊列為空,則返回 true。

size — 返回隊列中元素的大小/數量。

contains — 如果隊列包含給定元素,則返回 true。

peek — 返回隊列的最前面的元素,不 移除它。

請注意,優先級隊列的 Java 實現對方法使用不同的名稱。在生產環境中,我強烈建議您使用優先級隊列的默認實現,而不是“家庭成長”它。

優先隊列的實現

現在,讓我們在 Java 中實現一個非泛型優先級隊列。我們將一次實現一個操作,但首先,我們必須決定 要使用哪種內部數據結構。

數組非常好,所以我們將繼續使用它。

對于熟悉數組的人來說,您可能知道數組在 Java 中具有固定大小。我們對這個問題的解決方案是我們將提供一個私有方法 double(), 它“增加”了數組的容量。

優先級隊列的代碼框架如下所示。

package priorityqueue;
public class PriorityQueue {
    private int[] innerArray;
    private int size;
    public PriorityQueue() {
        this.innerArray = new int[10];
        size = 0;
    }
    public void enqueue(int x) {
    }
    public int dequeue() {
        return 0;
    }
    public int peek() {
        return 0;
    }
    public boolean contains(int x) {
        return false;
    }
    public boolean isEmpty() {
        return false;
    }
    public int size() {
        return 0;
    }
    private void doubleArray() {
    }
}

如您所見,我們使用int數組作為內部數據結構,并在構造函數中將其默認大小初始化為 10。我們還提供了一個私有變量size來跟蹤元素的數量。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品久久久久久久9999 | 在线不卡福利 | 五月天婷婷缴情五月免费观看 | 日韩久草 | 成人免费观看一区二区 | 日本视频免费高清一本18 | 国产在线观看精品 | 欧美在线精品永久免费播放 | 在线看片你懂的 | 午夜福利毛片 | 国产精品2 | 日本一区二区三 | 国产高清在线视频一区二区三区 | 黄视频日本| 免费特级黄毛片在线成人观看 | 波多野结衣在线观看免费区 | 成人午夜久久 | 制服丝袜第一页在线观看 | 日本黄色二级片 | 大伊香蕉在线精品视频人碰人 | 天堂亚洲国产日韩在线看 | 久久青草18免费观看网站 | 亚洲精品一二三四 | 中国free性护士xxxxhd | 久久精品国产免费中文 | 一个人看的www片免费视频中文 | www.妞干网.com| 欧美成人三级一区二区在线观看 | 国产精品一区在线麻豆 | 藏精第一福利 | 欧美性生交xxxxx丝袜 | 色偷偷偷偷要 | 国产成人18黄网站免费 | 黄色长视频| 国产精品久久久尹人香蕉 | 国产精品欧美日韩精品 | 女攻男受高h重口调教 | 日韩免费一级a毛片在线播放一级 | 黄色国产一级片 | 亚洲国产男人本色在线观看的a站 | 无遮挡动漫肉在线观看高清 |