優先順序佇列是比棧和佇列更專用的資料結構。優先順序佇列與上面普通的佇列相比,主要區別在於佇列中的元素是有序的,關鍵字最小(或者最大)的資料項總在隊頭。資料項插入的時候會按照順序插入到合適的位置以確保佇列的順序。優先順序佇列的內部實現可以用陣列或者一種特別的樹——堆來實現。
package com.cn.test.queue;
public class priorityqueue
//判斷佇列是否為空
public boolean isempty()
//判斷佇列是否已滿
public boolean isfull()
public long peekmin()
//佇列實際儲存數量大小
public int size()
//往佇列新增資料
public void insert(long value)
int j;
if(nitems==0)elseelse
}a[j+1]=value;
nitems++;
} }
public long remove()
return a[--nitems]; }
//列印 佇列
public void display()
system.out.println(" "); }
//測試
public static void main(string args) throws exception
}
這裡實現的優先順序佇列中,插入操作需要 o(n) 的時間,而刪除操作則需要 o(1) 的時間。
參考自:
Java優先順序佇列PriotyQueue
優先順序佇列,顧名思義,和傳統 先進後出 的佇列相比,優先順序佇列在元素加入時就根據該元素的優先順序插入到相應位置。實際上優先順序佇列priotyqueue在poll時還是遵循先進後出,只是資料在進入時已經根據優先順序排序了。實現優先順序佇列需要實現乙個comparator,測試 如下 public...
佇列 優先順序佇列
優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去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中最大關鍵字並返回該最大關鍵子...