本文共 1362 字,大约阅读时间需要 4 分钟。
优先级队列:
在优先级队列中,数据项按关键字的值有序,这样关键字最小的数据项(或最大)总是在 队头。数据项插入时会按照顺序插入到合适的位置以确保队列的顺序。package test13_priorityqueue;/** * Created by mlink on 2017/3/17. */public class PrioprityQueue { private long[] arr; private int maxSize;//最大空间 private int elems;//有效元素大小 public PrioprityQueue(int maxSize){ this.maxSize =maxSize; arr = new long[maxSize]; elems =0; } //插入数据 public void insert(long value){ int i; for (i = 0; i测试i ; j--) { arr[j] = arr[j-1]; } arr[i] = value; elems++; } //移除数据 public long remove(){ long value = arr[elems-1]; elems--; return value; } //是否为空 public boolean isEmpty(){ return (elems==0); } //是否满了 public boolean isFull(){ return (elems==maxSize); } //返回有效数字大小 public int size(){ return elems; }}
package test13_priorityqueue;/** * Created by mlink on 2017/3/17. */public class Test { public static void main(String[] args) { PrioprityQueue pq = new PrioprityQueue(10); pq.insert(50); pq.insert(40); pq.insert(30); pq.insert(20); pq.insert(10); while (!pq.isEmpty()){ long value = pq.remove(); System.out.print(value+" "); } }}打印:
10 20 30 40 50
表明在队列中,10优先级最高,从小到大,插入的是从大到小,这里提现了优先级转载地址:http://vpbni.baihongyu.com/