zoukankan      html  css  js  c++  java
  • 手写数据结构-基于最大堆实现的优先队列

    一.优先队列基础

    普通队列:先进先出/

    优先队列:出队顺序和入队顺序无关;和优先级相关

    1.为什么使用优先队列?

    • 动态选择优先级最高的任务

      如操作系统任务管理。

    二.手写基于最大堆的优先队列及复杂度分析

    package com.tc.javabase.datastructure.tree.priorityQueue;
    
    import com.tc.javabase.datastructure.queue.Queue;
    import com.tc.javabase.datastructure.tree.heap.MaxHeap;
    
    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(){
            return maxHeap.findMax();
        }
    
        @Override
        public void enqueue(E e){
            maxHeap.add(e);
        }
    
        @Override
        public E dequeue(){
            return maxHeap.extractMax();
        }
    }
    
  • 相关阅读:
    Kotlin 学习 (一)
    Spring Boot 学习(一)
    三大特性之继承
    OC中的点语法
    getter和setter
    三大特性之封装
    匿名对象
    对象作为返回值
    对象作为参数的连续传递
    对象作为参数传递
  • 原文地址:https://www.cnblogs.com/tc971121/p/13443796.html
Copyright © 2011-2022 走看看