隊列的特點是先進先出。通常都把隊列比喻成排隊買東西,大家都很守秩序,先排隊的人就先買東西。但是優先隊列有所不同,它不遵循先進先出的規則,而是根據隊列中元素的優先權,優先權最大的先被取出。這就很像堆的特征:總是移除優先級最高的根節點。
重點:優先級隊列,是要看優先級的,誰的優先級更高,誰就先得到權限。不分排隊的順序!
上篇文章解釋了堆的概念實現,現在用堆實現優先隊列:
//最大堆 import java.util.ArrayList; public class Heap{ private ArrayList list=new ArrayList ();//用數組實現堆 public Heap(){} public Heap(E[] objects){ for(int i=0;i