c语言循环链队列函数引用 c语言链队列的基本操作

C语言循环队列问题求教

这个并没有错,可以根据图分开来算

创新互联公司是专业的海北州网站建设公司,海北州接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行海北州网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

front指针指向存储元素位置,rear指针指向第一个未存储元素位置

首先,队列上半部分,有元素,m-30+1;

其次,队列下半部分,有元素,10-1;

所以,总共的元素个数为total = m-30+1+10-1 = m-20

C语言 数据结构 循环队列插入操作

#includestdio.h

#includemalloc.h

struct link_cqueue

{

int data;

struct link_cqueue *next;

};

//初始化循环链队列

struct link_cqueue *init_link_cqueue()

{

struct link_cqueue *rear;

rear=NULL; /*队尾指针设置为空*/

return rear;

}

//(1)插入(即入队)算法:

struct link_cqueue *EnCQueue(struct link_cqueue *rear, int x)

{ //设循环链队列的队尾指针为rear,x为待插入的元素

struct link_cqueue *p;

p=(struct link_cqueue *)malloc(sizeof(struct link_cqueue));

p-data=x;

if(rear==NULL) //如为空队,建立循环链队列的第一个结点

{

rear=p;

rear-next=p; //链接成循环链表

}

else //否则在队尾插入p结点

{

p-next=rear-next;

rear-next=p;

rear=p;

}

return rear;

}

//(2)删除(即出队)算法:

struct link_cqueue *DeCQueue(struct link_cqueue *rear)

{ //设循环链队列的队尾指针为rear

if (rear==NULL) //空队

printf("队列为空无法删除!\n");

else if(rear-next==rear) //队中只有一个结点

rear=NULL;

else

rear-next=rear-next-next; //rear-next指向的结点为循环链队列的队头结点

return rear;

}

//循环队列的输出

void print_link_cqueue(struct link_cqueue *rear)

{

struct link_cqueue *p;

if(!rear)

printf("队列为空!\n");

else

{

printf("%5d",rear-next-data);

p=rear-next;

while(p!=rear)

{

printf("%5d",p-next-data);

p=p-next;

}

}

printf("\n");

}

main()

{

struct link_cqueue *rear;

int x;

int c;

rear=init_link_cqueue();

do

{

printf("请选择入队或出队操作:1:入队;2:出队;3:输出!\n");

scanf("%d",c);

if(c==1)

{

printf("请输入要入队的元素:");

scanf("%d",x);

rear=EnCQueue(rear,x);

}

else if(c==2)

{

rear=DeCQueue(rear);

}

else if(c==3)

print_link_cqueue(rear);

else

printf("选择错误,请重新选择");

}while(1);

}

c语言调用队列库函数

q.push(m); // queue是C++STL模板库的东西,需要使用push来插入元素,详细信息你可以参考MSDN来了解其使用及内容。

文章标题:c语言循环链队列函数引用 c语言链队列的基本操作
文章来源:https://www.cdcxhl.com/article22/docpjjc.html

成都网站建设公司_创新互联,为您提供网站维护全网营销推广外贸网站建设网站营销云服务器外贸建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设