入队操作时,其实就是在链表尾部插入结点,如图4-13-3所示。
//链队不会满的
图4-13-3
rear->next = s;
rear->s;
其代码如下:
/* 插入元素e为Q的新的队尾元素 */
//链队不会满的
Status EnQueue(LinkQueue *Q, QElemType e)
{
QueuePtr s = (QueuePtr)malloc(sizeof(QNode));
/* 存储分配失败 */
if (!s)
exit(OVERFLOW);
s->data = e;
s->next = NULL;
/* 把拥有元素e新结点s赋值给原队尾结点的后继, */
Q->rear->next = s;
/* 见上图中① */
/* 把当前的s设置为队尾结点,rear指向s,见上图中② */
Q->rear = s;
return OK;
}