17_优先级队列

2020-09-10  本文已影响0人  伶俐ll

普通的队列是FIFO原则,也就是先进先出

优先级队列是按照优先级高低进行出队,比如将优先级最高的元素作为队头优先出队

优先级队列接口设计

优先级队列也是一个队列,因此和普通队列提供接口相同

优先级队列代码实现

package PriorityQueue;

import java.util.Comparator;

public class LZPriorityQueue<E> {

    private LZBinaryHeap<E> heap;

    public LZPriorityQueue(Comparator<E> comparator){
        heap = new LZBinaryHeap<>(comparator);
    }

    public LZPriorityQueue(){
        this(null);
    }

    /**
     * 入队
     */
    public void enQueue(E element){
        heap.add(element);
    }

    /**
     * 出队
     */
    public E deQueue(){
        return heap.remove();
    }

    /**
     * 获取队列的头元素
     */
    public E front(){
        return heap.get();
    }

    /**
     * 清空
     */
    public void clear(){
        heap.clear();
    }

    /**
     * 获取队列的长度
     */
    public int size(){
        return heap.size();
    }

    /**
     * 判断队列是否为空
     */
    public boolean isEmpty() {
        return heap.isEmpty();
    }

}

上一篇下一篇

猜你喜欢

热点阅读