java優先佇列的使用(包括重寫比較函式)
阿新 • • 發佈:2018-11-09
import java.util.*; public class DFStu { public static void main(String args[]){ //優先字元,從大到小 //重寫比較器 Queue<Character> que = new PriorityQueue( new Comparator<Character>() { public int compare(Character e1,Character e2) { return e2 - e1;///過載優先順序使其變為大根堆 } }); que.add('t'); que.add('c'); que.add('g'); que.add('f'); que.add('b'); int flag1=1; while(que.size()>0){ if(flag1==1){ System.out.print(que.poll()); flag1=0; }else { System.out.print(" " + que.poll()); } } System.out.println(); //優先數字,從小到大,也是預設的方式 Queue<Integer> que2 = new PriorityQueue<Integer>(); que2.add(11); que2.add(2); que2.add(14); que2.add(5); que2.add(7); int flag2=1; while(que2.size()>0){ if(flag2==1){ System.out.print(que2.poll()); flag2=0; }else { System.out.print(" " + que2.poll()); } } System.out.println(); } }