这是我正在完成的考试问题,我理解这个理论,但我不确定代码。
队列将被保存在一个名为Q的线性数组中,其元素数量= limit (编号0到限制-1)。队列中最旧的元素将保存在数组中 元素0(在前面),数组元素1中的下一个,依此类推。一个叫做回的变量 存储包含队列中最新元素的数组元素的索引 (对于空队列,为-1)。
删除操作的伪代码是什么?
size操作的伪代码是什么?
评论remove和size的实现效率 操作
答案 0 :(得分:0)
删除操作的伪代码:
if back = -1
error (Queue is empty)
else
decrease back by 1
用于大小操作的伪代码:
size = value of back + 1
效率:订单(1)或恒定时间
答案 1 :(得分:0)
我认为还应该有一个变量front
来存储队列的前端。因此,我们可以通过Q[front]
获得第一个元素。
这样:
if(front<=back) {
returnValue = Q[front];
front++;
return returnValue;
}
return back-front+1;
时间复杂度都是O(1)。