Files
leetcode/dataStruct/Queue/README.md
2025-09-15 21:12:04 +08:00

1.4 KiB
Raw Blame History

QUEUE

PriorityQueue - 优先队列

  • 优先队列也是一种队列只不过不同的是优先队列的出队顺序是按照优先级来的可能需要找到元素集合中的最小或者最大元素可以利用优先队列ADT来完成操作优先队列ADT是一种数据结构它支持插入和删除最小值操作返回并删除最小元素或删除最大值操作返回并删除最大元素

  • 这些操作等价于队列的enQueuedeQueue操作,区别在于,对于优先队列,元素进入队列的顺序可能与其被操作的顺序不同,作业调度是优先队列的一个应用实例,它根据优先级的高低而不是先到先服务的方式来进行调度;

  • 如果最小键值元素拥有最高的优先级,那么这种优先队列叫作升序优先队列(即总是先删除最小的元素),类似的,如果最大键值元素拥有最高的优先级,那么这种优先队列叫作降序优先队列(即总是先删除最大的元素);由于这两种类型时对称的,所以只需要关注其中一种,如升序优先队列;

  • 优先队列的应用

    • 数据压缩:赫夫曼编码算法;
    • 最短路径算法Dijkstra算法
    • 最小生成树算法Prim算法
    • 事件驱动仿真:顾客排队算法;
    • 选择问题查找第k个最小元素
    • 等等等等....