【问题标题】:Can Priority Queues have empty elements (like arrays)?优先队列可以有空元素(如数组)吗?
【发布时间】:2013-04-04 19:23:28
【问题描述】:

您好,我正在用算法设计语言编写一个用于模拟测试的算法,用于将元素添加到优先级队列中。

现在我计划使用通用方法将一个元素插入到后面的常规队列中,然后通过将其(根据优先级值)与位于它之前的元素进行比较,将其排序到正确的位置优先级队列。

这是我目前的算法(仅用于将项目添加到优先级队列):

  • 元素- 要添加到队列中的元素。
  • queue[ ]- 正在添加优先队列元素。
  • n- 优先队列的大小。
  • tail- 优先级队列中的最后一个元素。

过程 AddQ(IN元素,INOUT队列[],IN n,INOUT 尾巴)

if tail= n then
    print (“Queue is full”)
else {
    tail← tail+ 1
    queue (tail) ← element
}

结束

我不确定的是我是否应该有打印队列已满的部分。我是否认为优先级队列在尾部元素中有一个指向 null 的指针表示没有剩余元素?

如果是这样,这是否意味着优先级队列不能为新元素提供空白空间(例如标准数组),因为优先级队列中的尾部指向 null,表示队列中没有更多元素?还是我在这里采取了错误的方法?

我对它的工作原理感到困惑,如果有人能澄清一下,我将不胜感激!谢谢。

【问题讨论】:

    标签: linked-list queue element priority-queue


    【解决方案1】:

    Java 中的优先级队列是 dynamic ,它们可以包含最少数量的元素,但是您放入其中的元素的最大数量由您决定。如果您想要要通过队列找出最后一个元素是什么或找出最后一个元素在任何时候的位置,您需要一个 iterator 对象来帮助您做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多