(十二)优先级队列

来源:互联网 发布:用友t3软件下载 编辑:程序博客网 时间:2024/04/30 09:33

优先级队列介绍




PriorityQ.java(优先级队列类)


package sortedListApp;/** *  * 优先级队列 * @author qingshuang * */public class PriorityQ {   private long[] queArray;   private int maxSize;   private int nItems;   public PriorityQ(int s){   maxSize=s;   queArray=new long[maxSize];   nItems=0;   }   //插入元素   public void insert(long item){   int j;//要插入的位置   if(nItems==0){   queArray[nItems++]=item;   }else{   for(j=nItems-1;j>=0;j--){   if(item>queArray[j])   queArray[j+1]=queArray[j];   else   break;   }   queArray[j+1]=item;   nItems++;   }   }   //移除数据   public long remove(){   return queArray[--nItems];   }   //查看数据   public long peekMin(){   return queArray[nItems-1];   }   //是否为空   public boolean isEmpty(){   return nItems==0;   }   //是否是满的   public boolean isFull(){   return nItems==maxSize;   }}



PriorityQApp.java(优先级队列测试类)



package sortedListApp;/** * 优先级队列的测试类 *  * @author qingshuang *  */public class PriorityQApp {public static void main(String[] args) {PriorityQ thePQ=new PriorityQ(5);thePQ.insert(30);thePQ.insert(50);thePQ.insert(10);thePQ.insert(40);thePQ.insert(20); while(!thePQ.isEmpty()){ long item=thePQ.remove(); System.out.print(item+" "); }}}


0 0
原创粉丝点击