栈与队列问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:37:32
1.OutQueue(q,x)
int OutQueue(qnode *q, ElemTypr &x)
{if(q->rear==q->front)
return 0;
q->front=(q->front+1)%QueueSize;
x=q->data[q->front];
return 1;
}
请教下x=q->data[q->front]这句程序能不能删除?前面不是已经把指针进了1?为什么还要对x赋值?(请教下这句在程序里起的作用)

要是你不打算使用这个出队的元素值,当然可以删除这句。但是队列或栈的出栈(队)的值不是一定没用。所以为了程序更通用,一般会把栈顶(队首)值返回。

返回值
一般队列出列时,会返回出列值

X是引用,引用是可以把结果反应给传进来的实参的,它在函数外的结果会变的.