优先级队列可以使用堆来实现。普通队列是先进先出的数据结构。元素被追加到队列的末尾并从开头删除。在优先级队列中,元素被分配优先级。访问元素时,首先删除优先级最高的元素。例如,医院的急诊室为患者分配优先号码;优先级最高的患者首先得到治疗。
优先级队列可以使用堆来实现,其中根是队列中优先级最高的对象。堆是在堆排序中引入的。优先级队列的类图如下图所示。它的实现在下面的代码中给出。
下面的代码给出了为患者使用优先级队列的示例。 Patient 类在第 21-38 行中定义。在第 6-9 行中创建了四个具有相关优先级值的患者。第 8 行创建一个优先级队列。患者排在第 12-15 行。 18 号线将一名患者从队列中移出。
辛迪(优先级:7)蒂姆(优先级:5)约翰(优先级:2)吉姆(优先级:1)
以上是优先级队列的详细内容。更多信息请关注PHP中文网其他相关文章!