我正在尝试实施一个队列。但是我想要它,这样当我从队列中删除时,它会删除具有最高优先级的元素。这意味着,例如,如果我插入以下值:
Value key
1000 2
9000 3
1000 2
它应首先删除具有最高键的元素(在本例中为3),如果有两个元素具有相同的键值,则应删除之前插入的元素。
注意:第二维只有2
del(){
if (front == -1 || front > rear)
{
printf("Queue Underflow\n");
return ;
}
else
{
printf("Element deleted from queue is : %d\n", queue_arr[front][2]);
front=front+1;
}
}
答案 0 :(得分:0)
您要找的是最高级别priority-queue,通常使用heap data structure来实现。
队列中元素的优先级为<your key, insertion order>
,your key
部分的优先级高于insertion order
。