优先级如何排队队列数据结构。由于它不遵循FIFO,因此不应将其命名为Priority Array或Priority Linked LIst,因为优先级队列不遵循类似FIFO队列的方式
答案 0 :(得分:3)
在优先级队列中,在具有低优先级的元素之前提供具有高优先级的元素。 ' 如果两个元素具有相同的优先级,则会根据队列中的顺序提供服务 我想这会回答你的问题
答案 1 :(得分:2)
如果查看最常用的实现,优先级队列基本上是堆 - 它们是根据程序员定义的优先级以特定方式排列的 - 在一个简单的例子中,整数的升序或降序。
将优先级队列视为一个队列,而不是根据添加元素的时间检索元素,而是根据它们相互比较的方式检索它们。在教科书示例中,此比较可以简单地按升序或降序排列。您可以从另一个StackOverflow答案的类比中理解ADT:
你正在经营一家医院,病人正在进来。这里只有一家 医生在工作人员。第一个男人走了进来 - 他马上就服完了。 接下来,感冒的男人进来需要帮助。你加他 排队等候医生排队等候。 接下来,一个头上戴着斧头的男人穿过门。他是 因为他是更高的医疗责任而被赋予更高的优先权。 所以患感冒的男子排成一列。接下来,有人来了 有呼吸问题。所以,感冒的男人又一次 优先考虑。这在现实世界中称为触发 - 但在这种情况下,它是一条医疗线。
在代码中实现它将使用优先级队列和工作者 线程(医生)对消耗品/工作单元进行操作 (患者)。
在实际情况中,您可能有进程等待CPU处理,而不是患者。