什麼是優先順序佇列(priority queue)?

2022-07-18 05:54:09 字數 529 閱讀 3616

有時候我們需要在某個元素集合中找到最小值和最大值 。優先順序佇列抽象資料(priority queue adt)模型是我們能夠使用的方法之一,這是一種支援插入和刪除最小值(deletemin)或者最大值(deletemax)的資料結構。

這兩個操作和佇列中的進隊(enqueue)和出隊(dequeue)操作很相似。區別就在於,在優先順序佇列中,資料進入的順序與他們接受處理的順序可能不同。就像工作日程,一般是按重要程度排序而不是到來順序。

在優先順序佇列中,如果最小的元素總是優先順序最高(即最小元素先出列),就叫公升序優先順序(ascending – priority)序列。相應的,如果最大的元素優先順序最高那麼就叫降序優先順序(descending – priority)序列。這兩種對列具有對稱性,我們只要了解一種,另一種依葫蘆畫瓢就可以了。

優先順序佇列的應用:

優先順序佇列的操作:

佇列 優先順序佇列

優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去1.public class priorityq 插入 public void insert long item else quearray j 1 item nitem 刪除 public long ...

優先順序佇列

分為最小優先順序佇列和最大優先順序佇列。優先順序佇列是一種用來維護一組元素構成的集合s的資料結構,這一組元素都有乙個關鍵字key,乙個最大優先順序佇列支援的操作 insert s,x 把x插入到集合s中 maxmum s 返回s中最大元素 extra max s 去掉s中最大關鍵字並返回該最大關鍵子...

優先順序佇列

1 include stdafx.h 2 include3 4 using namespace std 5 6 define max heap len 107 int heap max heap len 8 int heap size 0 the number of elements in heap...