什么是优先队列
普通的队列都是先入先出的形式,元素在队尾加入,在队头删除。优先队列中,元素被赋予优先级,具有最高优先级的元素先出。通常采用二叉堆结构实现。
所以优先队列和堆一样,有两种形式:最大优先队列和最小优先队列。
最大优先队列是指最大值具有最高优先级。
最小优先队列是值最小值具有最高优先级。
每次的push和pop操作,队列都会动态的调整。
Java中PriorityQueue类实现优先队列。
常用方法
public boolean add(E e);//在队尾添加元素
public E peek();//取出队头元素
public boolean remove(Object o);//删除指定元素
public boolean contains(Object o);//检查是否包含元素
public Object[] toArray();//将队列转换成数组
public int size();//返回元素个数
public void clear() ;//清空队列
public E poll(); //返回并清除队头元素
public boolean isEmpty()