資料結構 優先佇列PriorityQueue

2021-08-13 09:44:09 字數 1189 閱讀 9383

offer(e e)——插入元素

public

boolean

offer(e e)

siftup(int k, e x)——二叉堆的上濾
1. 放在陣列末尾

2. 與父節點進行比較,找到合適的位置

private

void

siftup(int k, e x)

@suppresswarnings("unchecked")

private

void

siftupcomparable(int k, e x)

queue[k] = key;

}@suppresswarnings("unchecked")

private

void

siftupusingcomparator(int k, e x)

queue[k] = x;

}

peek()——返回第乙個元素,不改變陣列內容
public e peek()
poll()——返回第乙個元素,且移除該元素,改變佇列結構,同二叉堆的deletemin,使用下濾
public e poll()
siftdown(int k, e x)——二叉堆的下濾操作
1. 將最後乙個元素放到位置0處

2. 與左右子節點比較,並進行交換,直到將這個元素放到合適的位置

private

void

siftdown(int k, e x)

@suppresswarnings("unchecked")

private

void

siftdowncomparable(int k, e x)

queue[k] = key;

}@suppresswarnings("unchecked")

private

void

siftdownusingcomparator(int k, e x)

queue[k] = x;

}

資料結構 優先佇列

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

資料結構 優先佇列

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

資料結構 優先佇列

優先佇列 pr iori tyqu eue priority queue prior ityq ueue 定義 普通的佇列是一種先進先出的資料結構,元素在佇列尾追加,而從佇列頭刪除。在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除。優先佇列具有最高端先出 fi rsti...