优先队列
普通队列是先进先出,优先队列分为两类
- 最大优先队列,每次出队的是最大元素
- 最小优先队列,每次出队的是最小元素
二叉堆可以轻松实现以上需求。
package Queue;
import java.util.Arrays;
public class MyPriorityQueue {
private int[] array;
private int size;
public MyPriorityQueue(){
//队列初始长度
array = new int[32];
}
/**
* 入队
* @param key
*/
public void enQueue(int key){
//队列超出初始长度需要扩容
if(size>=array.length){
resize();
}
//二叉堆的插入,插入位置为最后
array[size++]=key;
//上浮
upAdjust();