假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾结点,但不设头指针

voidInitCiQueue(CiQueue&Q)//初始化循环链表表示的队列Q{Q=(CiLNode*)malloc(sizeof(CiLNode));Q->next... void InitCiQueue(CiQueue &Q)//初始化循环链表表示的队列Q
{
Q=(CiLNode*)malloc(sizeof(CiLNode));
Q->next=Q;
}//InitCiQueue

void EnCiQueue(CiQueue &Q,int x)//把元素x插入循环链表表示的队列Q,Q指向队尾元素,Q->next指向头结点,Q->next->next指向队头元素
{
p=(CiLNode*)malloc(sizeof(CiLNode));
p->data=x;
p->next=Q->next; //直接把p加在Q的后面
Q->next=p;
Q=p; //修改尾指针
}

Status DeCiQueue(CiQueue &Q,int x)//从循环链表表示的队列Q头部删除元素x
{
if(Q==Q->next) return INFEASIBLE; //队列已空
p=Q->next->next;
x=p->data;
Q->next->next=p->next;
free(p);
return OK;
}//DeCiQueue

上面分别是初始化,入队列和出队列的算法。
请问Q=(CiLNode*)malloc(sizeof(CiLNode));是什么意思。
如何表示循环链表队列已经满的情况呢?
Q==Q->next是空的情况
展开
 我来答
lkjhggv
推荐于2017-11-22 · TA获得超过3063个赞
知道大有可为答主
回答量:1550
采纳率:66%
帮助的人:1318万
展开全部
Q=(CiLNode*)malloc(sizeof(CiLNode));
malloc是申请内存空间的函数 CiLNode是函数返回的指针类型 sizeof(x)是指x的大小(长度),此句的意思是向内存申请一个CiLNode大小的空间,其类型是CiLNode,指向这个位置的指针是Q,如果分配失败,则Q=NULL
链表表示队列会满吗?新加入元素都会申请内存空间,除非内存不足,申请失败
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式