29、优先队列、堆和图的深入解析

优先队列、堆和图的深入解析

1. 优先队列概述

优先队列是一种抽象数据类型,其访问协议独特,仅能访问最高优先级的元素。“最高优先级”的定义因应用场景而异。

  • 应用场景举例
    • 公司秘书工作安排 :小公司中,秘书处理工作的顺序依据员工在公司的重要程度,总裁的工作优先于副总裁,营销总监的工作优先于普通程序员。
    • 电话应答系统 :按照来电的先后顺序应答,等待时间最长的电话优先级最高,此时先进先出(FIFO)队列可视为一种优先队列。
    • 共享打印机 :配置为优先打印队列中最小的任务,这样打印少量页面的用户无需等待大任务完成。
2. 优先队列的逻辑层面

优先队列抽象数据类型(ADT)定义的操作包括入队、出队,以及检查队列是否为空或已满。这些操作与第4章讨论的FIFO队列操作类似,但优先队列不遵循“先进先出”原则,总是返回当前入队元素中优先级最高的元素。

以下是Java接口 PriQueueInterface 的规范:

package ch09.priorityQueues;
public interface PriQueueInterface {
    public boolean isEmpty();
    // Effect:         Deter
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值