public class BinaryHeapPriorityQueue<T> extends AbstractQueue<T> {
private T[] queue;
private int size;
public BinaryHeapPriorityQueue(int max, Comparator<T> comparator) {
super(comparator);
this.queue = (T[]) new Object[max + 1];
}
@Override
public void enqueue(T item) {
this.queue[++size] = item;
this.swim(size);
}
@Override
public T dequeue() {
T max = this.queue[1];
exch(this.queue, 1, size--);
this.queue[size + 1] = null; //释放内存
this.sink(1);
return max;
}
//省略其他函数
}
文中所有源码已放入到了github仓库https://github.com/silently9527/JavaCore
最后(点关注,不迷路)
文中或许会存在或多或少的不足、错误之处,有建议或者意见也非常欢迎大家在评论交流。
最后,「写作不易,请不要白嫖我哟」,希望朋友们可以「点赞评论关注」三连,因为这些就是我分享的全部动力来源🙏
本文分享自微信公众号 - 贝塔学JAVA(betajava)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。