我创建了类队列,我需要找到最小值和最大值。最大值是正确的,但最小值不是。我应该改变什么数字的值 头尾可以得到正确的结果?如果我将它们更改为零,则第一个元素变为最大值和最小值 queue
OP_PADANY
答案 0 :(得分:0)
构建对象后,tail
为-1
。
当您添加第一个元素时,您的方法MyQueue::myEnqueue
会执行以下操作:
data[-1]=el;
你的最后一个元素总是有垃圾,这可能是一个很大的负数。 Head
为-1也是一个坏主意。
修正:
0
添加元素的代码应为:
if (tail == size)
{
tail = 0;
}
data[tail++] = el;