利用優先順序佇列實現堆疊

2022-02-12 20:28:59 字數 801 閱讀 5550

因為優先順序佇列是一種用來維護由一組元素構成的集合s的資料結構,執行的操作包含:

對於最大優先順序佇列:

insert(s,x)把元素x插入s,仍然保持最大優先順序佇列

maximum(s)取得最大關鍵字的值,也就是優先順序最高的

extract_max(s):去的最大關鍵字的值並刪除,剔除優先順序最高的

increase_key(s,x,k):在第i的元素上換成k並保持s的性質,是此元素優先順序提高

對於最小優先順序佇列性質正好相反:

通過minimun()和得到此佇列中最小的元素,即優先順序最小的元素。

通過extract_min()可得到優先順序最小的元素,並將此元素從佇列中刪除。

通過insert()可一插入乙個元素到此佇列中,插入後此佇列依舊是乙個最小優先順序佇列。

通過decrease_key()可一將乙個元素的優先順序變小,並保持優先順序佇列的性質。

佇列的實現:

因為佇列的特點是先進先出(fifo),可以用最小優先佇列實現,設定插入元素的優先順序屬性就用基於最小堆的優先佇列來實現,因為乙個元素插入的越晚他的優先順序就越低!所以可以用增量設定,因為在最小優先佇列裡元素值越大,優先順序越低,這樣子就可以實現佇列一邊插入,一邊進入優先佇列被設定成低的優先順序;當出隊的時候,

extract_min()

就可以把最先進入佇列的元素出隊了!

棧的實現:

棧的特點是後進先出,那用最小佇列的話,進棧的時候,資料設定優先順序屬性,並且這個屬性值遞減的,因此優先順序就是最大的,這樣出隊的時候就是把優先順序佇列最大的元素出隊了。

實現的**還得等待時間寫出來!!嘎嘎!!

利用堆實現優先順序佇列博文

演算法研究 四 用堆實現優先順序佇列 首先宣告 本人只是乙個菜鳥而已。由於以後很多地方都會用到優先順序佇列的知識,所以在這裡先給大家講解一下。只是簡單的說明一下而已,並沒有深入的研究。其實優先順序佇列的應用非常廣泛,比如說最大優先順序佇列就用在一台分時計算機進行作業排程。這種佇列對要執行的各種作業以...

優先順序佇列的實現

優先順序佇列 佇列裡面的所有元素都有相應的權值,元素的刪除順序由這些權值決定。優先順序佇列的實現一般用堆來實現其效率比一般的實現要高。要弄清楚堆我們得先弄清楚下面的定義 一顆大根樹 小根樹 是這樣一棵樹,其中每個節點的值都大於 小於 或等於其子節點 如果有子節點的話 的值。大根堆 乙個大根堆 小根堆...

優先順序佇列(堆實現)

一 優先順序佇列定義 二 方法實現 獲得最大元素方法 去掉最大元素方法 修改優先順序方法 新增節點 三 實現 用堆實現乙個優先順序佇列 主要是新增 修改 刪除節點 節點具有唯一性 author hhf 2014年11月28日 public class priorityqueue 返回優先佇列中優先順...