首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
假定用一个单循环链表来表示队列(也称为循环队列),该队列只设
[问答题]
假定用一个单循环链表来表示队列(也称为循环队列),该队列只设一个队尾指针,不设队首指针,试编写下列各种运算的算法:
(
1
)向循环链队列插入一个元素值为
x
的结点;
(
2
)从循环链队列中删除一个结点。
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(9)
分享
纠错
1个回答
添加回答
0
蜡蜡
本题是对一个循环链队列做插入和删除运算,假设不需要保留被删结点的值和不需要回收结点,算法描述如下:
(1)插入(即入队)算法:
insert(LinkList *rear, elemtype x)
{ //设循环链队列的队尾指针为rear,x为待插入的元素
LinkList *p;
p=(LinkList *)malloc(sizeof(LinkList));
if(rear= =NULL) //如为空队,建立循环链队列的第一个结点
{ rear=p;
rear->next=p; //链接成循环链表
}
else //否则在队尾插入p结点
{ p->next=rear->next;
rear->next=p;
rear=p;
}
}
(2)删除(即出队)算法:
delete(LinkList *rear)
{ //设循环链队列的队尾指针为rear
if (rear= =NULL) //空队
printf("underflow\n");
if(rear->next= =rear) //队中只有一个结点
rear=NULL;
else
rear->next=rear->next->next; //rear->next指向的结点为循环链队列的队头结点
}
发表于 2017-07-31 13:44:23
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
链表
上传者:
蜡蜡
难度:
1条回答
9收藏
3738浏览
热门推荐
相关试题
数据链路层滑动窗口机制中发送窗口(...
网络基础
评论
(1)
有关linux线程的描述,正确的是...
京东
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
用一种动物介绍你自己
通用能力
评论
(1)
对于小红书,创作者和粉丝之间互相不...
需求分析
评论
(1)
请你说几个海量数据存储常见问题以及...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题