1. 程式人生 > >二十三 基於堆實現優先佇列

二十三 基於堆實現優先佇列

複雜度分:

 

 

基於堆實現優先佇列:

 

package com.lt.datastructure.MaxHeap;

import com.lt.datastructure.Queue.Queue;

/**
 * 堆實現優先佇列
 */
public class PriorityQueue<E extends Comparable<E>> implements Queue<E> {
   
    private MaxHeap<E> maxHeap;

    public PriorityQueue() {
        maxHeap 
= new MaxHeap<>(); } @Override public int getSize() { return maxHeap.size(); } @Override public boolean isEmpty() { return maxHeap.isEmpty(); } @Override public E getFront(E e) { //查詢隊首元素 return maxHeap.findMax(); } @Override
public void enqueue(E e) { maxHeap.add(e); } @Override public E dequeue() { //最大值先出隊 return maxHeap.extractMax(); } }