資料結構 優先佇列

2021-09-30 00:09:06 字數 1023 閱讀 1192

優先佇列(pr

iori

tyqu

eue)

(priority \ queue)

(prior

ityq

ueue

)定義:

普通的佇列是一種先進先出的資料結構,元素在佇列尾追加,而從佇列頭刪除。在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除。優先佇列具有最高端先出(fi

rsti

n,la

rges

tout

)(first \ in, largest \ out)

(first

in,l

arge

stou

t)的行為特徵。

通常採用 堆 資料結構來實現。

簡單陳述:

具備優先順序的佇列,隊首元素總為優先順序最高的元素,而這個優先順序是程式設計師設定的,比如,擁有最大值的元素優先順序最高,那麼在每次在向優先佇列刪除或者新增元素時,隊首的元素總是該佇列中的最大值。

c++**實現

#include// priority_queue《結構型別》 佇列名;

priority_queue i;

priority_queue ,greater> q;//從小到大

priority_queue ,less>q;//從大到小

q.size();//返回q裡元素個數

q.empty();//返回q是否為空,空則返回1,否則返回0

q.push(k);//在q的末尾插入k

q.pop();//刪掉q的第乙個元素

q.top();//返回q的第乙個元素

//自定義的排序規則

struct node

}input;

struct cmp1

{ bool operator () (const node &x,const node &y) const

{ return x.fir,cmp1> q1;

下節我們介紹堆,一種實現優先佇列的基本資料結構。

資料結構 優先佇列

優先佇列是允許至少下列兩種操作的資料結構 insert 插入 deletermin 刪除最小者 它的工作室找出 返回 刪除優先佇列最小的元素。插入操作等於enqueue 入隊 而detemin則是佇列中dequeue 出隊 在優先佇列中的等價操作。determin函式也變更它的輸入。二叉堆 結構性 ...

資料結構 優先佇列

形象化描述 可以插隊的佇列。標頭檔案 定義方法 較為簡單的常見優先佇列可直接定義 如 priority queue,greater pq 即定義乙個越小的整數優先順序越大的優先佇列。若想實現自定義排序,需過載運算子 如 struct cmp 定義方法 priority queue,cmp pq 注意...

資料結構 優先佇列

普通的佇列是一種先進先出的資料結構,元素在佇列尾追加,而從佇列頭刪除。在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除。優先佇列具有最高端先出 first in,largest out 的行為特徵。通常採用堆資料結構來實現。本 採用c 編寫,包含優先佇列的幾種常用操作 ...