优先级队列可以使用堆来实现。普通队列是先进先出的数据结构。元素被追加到队列的末尾并从开头删除。在优先级队列中,元素被分配优先级。访问元素时,首先删除优先级最高的元素。例如,医院的急诊室为患者分配优先号码;优先级最高的患者首先得到治疗。
优先级队列可以使用堆来实现,其中根是队列中优先级最高的对象。堆是在堆排序中引入的。优先级队列的类图如下图所示。它的实现在下面的代码中给出。
下面的代码给出了为患者使用优先级队列的示例。 Patient 类在第 21-38 行中定义。在第 6-9 行中创建了四个具有相关优先级值的患者。第 8 行创建一个优先级队列。患者排在第 12-15 行。第 18 行将一名患者从队列中出队。
辛迪(优先级:7)蒂姆(优先级:5)约翰(优先级:2)吉姆(优先级:1)
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3