2016-11-28 151 views
0

優先級如何隊列隊列數據結構。由於它不遵循FIFO,因此它不應該被命名爲Priority Array或Priority Linked LI,主要是因爲優先級隊列不像FIFO隊列那樣流行優先級隊列VS隊列

回答

1

在優先級隊列中,將爲優先級隊列提供高優先級的元素在低優先級的元素之前。 我認爲這會回答你的問題

1

如果你看看最常用的實現「如果兩個元素具有相同的優先級,他們根據自己在隊列爲了供應」,優先級隊列基本上堆 - 根據程序員定義的優先級,它們以特定的方式排列 - 以一個簡單的例子,整數的升序或降序排列。

將優先隊列看作隊列,而不是根據添加元素的時間來檢索元素,而是根據它們如何相互比較來檢索它們。在您的教科書示例中,此比較可以簡單地升序或降序排列。您可以從另一個StackOverflow的答案打個比方理解ADT:

您運行的是醫院和患者在未來只有一個 醫生的工作人員。第一個男人走進來 - 他馬上服了。 接下來,一個感冒的男人進來並需要幫助。你加他 到排隊等候排隊等候醫生變得可用。 接下來,一個頭上有斧頭的男人從門裏走過來。他是 被賦予更高的優先權,因爲他是一個更高的醫療責任。所以那個感冒的男人會被排隊排隊。接下來,有人來呼吸困難 。所以,再一次,感冒的人是 優先倒下。這在現實世界中稱爲trigaing - 但在這種情況下,它是一條醫療線。

在代碼中執行此操作將使用優先隊列和工作線程(醫生)對消耗品/工作單元 (患者)執行工作。

在真實情況下,您可能會有等待CPU處理的進程,而不是患者。

閱讀: When would I use a priority queue?