【发布时间】: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