链队列在出队思路如下:
判断队列是否为空队列
如果是,抛出异常终止程序
如果不是,则判断队列中是否仅剩一个结点
如果只剩一个结点,释放该结点,然后将head和tail置为空
如果不是只剩一个结点,那么使用一个指针记录下当前队头的下一个结点的位置...判断队列是否为空,我们可以返回(pq->size==0)表达式的值:
如果队列为空,则size=0,则pq->size==0表达式为真,函数返回true....如果队列不为空,则size不等于0,则pq->size==0表达式为假,函数返回false.
综上,该部分代码如下:
bool QueueEmpty(Que* pq)//判空!为空返回真!...,完整代码如下:
test.c文件
#include"Queue.h"
//因为链队列头指针是必须的
//而在队尾插入则尾指针同样也是必须的
//因此我们不妨设置两个指针,一个记录队头,一个记录队尾...//为方便起见,多个数据我们把头指针和尾指针再封装一个结构体
//单链表不设置尾指针的原因是它不能解决尾删问题
int main()
{
Que Q;//初始化