2016-11-28 243 views
0

优先级如何队列队列数据结构。由于它不遵循FIFO,因此它不应该被命名为Priority Array或Priority Linked LI,主要是因为优先级队列不像FIFO队列那样流行优先级队列VS队列

回答

1

在优先级队列中,将为优先级队列提供高优先级的元素在低优先级的元素之前。 我认为这会回答你的问题

1

如果你看看最常用的实现“如果两个元素具有相同的优先级,他们根据自己在队列为了供应”,优先级队列基本上堆 - 根据程序员定义的优先级,它们以特定的方式排列 - 以一个简单的例子,整数的升序或降序排列。

将优先队列看作队列,而不是根据添加元素的时间来检索元素,而是根据它们如何相互比较来检索它们。在您的教科书示例中,此比较可以简单地升序或降序排列。您可以从另一个StackOverflow的答案打个比方理解ADT:

您运行的是医院和患者在未来只有一个 医生的工作人员。第一个男人走进来 - 他马上服了。 接下来,一个感冒的男人进来并需要帮助。你加他 到排队等候排队等候医生变得可用。 接下来,一个头上有斧头的男人从门里走过来。他是 被赋予更高的优先权,因为他是一个更高的医疗责任。所以那个感冒的男人会被排队排队。接下来,有人来呼吸困难 。所以,再一次,感冒的人是 优先倒下。这在现实世界中称为trigaing - 但在这种情况下,它是一条医疗线。

在代码中执行此操作将使用优先队列和工作线程(医生)对消耗品/工作单元 (患者)执行工作。

在真实情况下,您可能会有等待CPU处理的进程,而不是患者。

阅读: When would I use a priority queue?