实现了优先队列的添加与删除方法
- 优先队列利用最小堆来实现
- 主要方法:删除堆顶元素、添加元素后最小堆的维护
代码实现
package basicKnowledge.集合框架.priorQueue;
import basicKnowledge.集合框架.queue.MyListQueue;
import com.sun.xml.internal.bind.v2.schemagen.xmlschema.Any;
import jdk.nashorn.internal.runtime.regexp.joni.ast.AnyCharNode;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
/**
* @基本功能:手写一个优先队列(实现一个二叉堆)
* @program:summary
* @author:peicc
* @create:2019-08-19 12:53:46
**/
public class MyPriorityQueue<AnyType> {
private static final int DEFAULT_INIT_CAPACITY=11;//默认的初始化容量
private Object[] queue;//存储优先队列的元素
private int size;//堆中当前元素的数量
private Comparator<? super AnyType> comparator;//比较器
/************构造函数****************/
//无参构造函数
MyPriorityQueue(){
this(DEFAULT_INIT_CAPACITY,null);
}
//Collection集合参数
MyPriorityQueue(Collection<? extends AnyType> c){
}
//带比较器的构造函数
MyPriorityQueue(Comparator<? super AnyType> comparator){
this(DEFAULT_INIT_CAPACITY,comparator);
}
//初始化队列容量
MyPriorityQueue(int capacity){
this(capacity,null);
}