优先级队列可以有空元素(像数组一样)吗?



嗨,我正在为模拟测试编写算法设计语言,用于将元素添加到优先级队列。

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

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

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

程序/strong> AddQ (元素, INOUT 队列[], n, INOUT 尾巴)

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

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

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

我很困惑,这是如何工作的,如果有人能澄清我将非常感激!谢谢。

java中的优先级队列是动态的,它们可以有最小数量的元素需要在它们中,但是您放入它们的最大元素数量由您决定。如果你想遍历一个队列,找出最后一个元素是什么,或者找出最后一个元素在任何一点的位置,你需要一个迭代器对象来帮助你做到这一点。

相关内容

  • 没有找到相关文章