关于链队列的插入

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:54:13
Status EnQueue(LinkQueue &Q,QElemType e) {
//队列Q存在,插入元素e为Q的队尾元素
p=(QueuePtr)malloc(sizeof(QNode));
if(!p) exit(OVERFLOW);
p->data=e;p->next=NULL;
Q.rear->next=p;
Q.rear=p;//这一句的作用是什么
return OK;
}

其中Q.rear=p;的作用是什么

这个队列是带尾指针rear的。插入数据后那尾指针所指向的对象自然要指向插入的那个值。也就是说Q.rear->next=p是在队列中添加新结点,Q.rear=p是重新定位队列的尾结点。