用循环单链表实现循环队列,如何写出插入和删除的算法?

 我来答
Conqueror
高粉答主

推荐于2019-10-08 · 关注我不会让你失望
知道大有可为答主
回答量:794
采纳率:100%
帮助的人:28.3万
展开全部

typedef struct CircleListNode{

Datatype d;          

struct CircleList *pre,*nxt;          

}*CircleList,CirListNode;

typedef struct

{

CircleList Head;   

int num;

}CircleQueue;

void insertFront(CircleList *L,d);

{

if(!L)return NULL;

if(*L==NULL)

{

*L=(CircleList) malloc(sizeof(CirListNode));

*L->nxt=  *L->pre=*L ;

*L->d=d;

}

else

{        

CircleList p =(CircleList) malloc(sizeof(CirListNode));

p->nxt=*L;

p->pre=*L->pre;

*L->pre->nxt=p;

*L->pre=p;

*L=p;           

}  

}

循环单链表是单链表的另一种形式,其结构特点链表中最后一个结点的指针域不再是结束标记,而是指向整个链表的第一个结点,从而使链表形成一个环。和单链表相同,循环链表也有带头结点结构和不带头结点结构两种,带头结点的循环单链表实现插入和删除操作较为方便。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式