发布网友 发布时间:2023-04-25 19:57
共2个回答
热心网友 时间:2023-10-16 13:39
正确。
既然是队列,只能先进先出,所以只能删除front->next所指的节点,rear指针不动。但如果front->next == NULL,需要把头指针复制给尾指针。这时候队列就是空队列了。所以头尾指针可能都要修改。
假设head是指向队列的头结点指针,p为与head同类型的指针,那么head->next指向的是队列的首结点,那么出队的操作为
p = head->next;//指向欲出队的结点
head->next = p->next;//这一步不能少
free(p);//销毁队首节点
扩展资料:
测试链接队列为空的条件是front为NULL。事实上,在链接队列中插人一个新的元素就是在链表的表尾链结点后添加一个新链结点;而删除一个元素的操作就是删除链表的第1个链结点。
链接队列的类型可以定义如下。
typedefstruct node{
OElemType data
struct node ,link;
} QNode,xQLink; /*定义一个链表队列类型*/
参考资料来源:百度百科-链接队列
热心网友 时间:2023-10-16 13:39
如果你的链队列是用带头结点的链表来实现的,头指针当然始终指向头结点,不会改变。