/**
* 优先级队列,排好序的队列插入和删除
*/
class PriorityQueue {
int a[];
int maxSize;
int nItems;
public PriorityQueue(int size){
maxSize = size;
a = new int[maxSize];
nItems = 0;
}
//有序插入
public void inset(int value){
int j; //要插入的位置
if(nItems == 0){
a[nItems++] = value;
}else {
for(j=nItems - 1;j>=0;j--){
if(value > a[j]){
a[j+1] = a[j];
}else {
break;
}
}
a[j+1] = value;
nItems ++;
}
}
//删除
public int remove(){
return a[--nItems];
}
//查看最小的
public int peekMin(){
return a[nItems - 1];
}
//判满
public boolean isFull(){
return nItems == maxSize;
}
//判空
public boolean isEmpty(){
return nItems == 0;
}
public static void main(String[] args){
PriorityQueue pq = new PriorityQueue(10);
pq.inset(56);
pq.inset(5);
pq.inset(6);
pq.inset(99);
pq.inset(1);
pq.inset(35);
pq.inset(25);
while (!pq.isEmpty()){
int value = pq.remove();
System.out.print(value + " ");
}
}
}
java版数据结构与算法—优先级队列
猜你喜欢
转载自blog.csdn.net/weixin_38799368/article/details/84146854
周排行