① 判空,判断队列是否为空,若为空,返回false
if(Q.front == Q.rear) return false;
② 创建临时变量存储要出队元素:
LinkNode *p = Q.front -> next;
x = p.data;
③ 队头指针后继指向要出队元素的后继元素:
Q.fronot->next = p-> next;
④ 判断要出队的元素是否为最后一个元素,若为最后一个元素,应该将队尾指针指向头节点。
if(Q.rear == p) {
Q.rear = Q.front;
}
⑤ 释放出队元素
free( p);
完整代码:
bool DeQueue(LinkNode &Q, ElemType &x){
if(Q.front == Q.rear) return false;
LinkNode *p = Q.front -> next;
x = p->data;
Q.front -> next = q->next;
if(Q.rear == p) Q.rear = Q.front;
free ( p);
return true;
}
带头结点的队列出队操作
最新推荐文章于 2023-05-16 23:33:37 发布