- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
056312409数据结构(C语言版)(夏燕张兴科)--习题答案--第4章
4.5 习题与上机操作(rear-front+m)%m
⑷ L-front = = L-rear
⑸ p = (QueueNode *) malloc (sizeof ( QueueNnode ) );
p-data=x; p-next=NULL; q-rear-next=p; q-rear=p;
⒊ 程序设计题
⑴ 假设以数组Q[m]存放循环队列中的元素, 同时设置一个标志tag,以tag = = 0和tag = = 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为空还是满。 试编写与此结构相应的插入(enqueue)和删除(dlqueue)算法。解 int rear, front, tag; //队尾指针、队头指针和队满标志Q[m]; //存放队列元素的数组队列最大可容纳元素个数} CirQueue
插入函数EnQueue ( CirQueue *q, Elemtype x )
{ if (q-tag=1 )
{ printf ("队满");
return (FALSE ); /队满不能入队
}
else
{ rear = ( q-rear + 1 ) % m; //队尾位置进1, 队尾指针指示实际队尾位置 Q[q-rear] = x; //进队列 tag = 1; //标志改1,表示队列}
}
删除函数DeQueue ( CirQueue *q , Elemtype *x )
{ if (q-tag=0 )
{ printf("队空");
return (FALSE ); //队空不能出队
}
else
{ q-front = ( q-front + 1 ) % m;
//队头位置进1, 队头指针指示实际队头的前一位置*x = q-data[q-front]; //读出队头元素
if (q-rear=q-front) tag = 0; //标志改,表示队列 return (TRUE);
}
}
⑵ 假设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素站点(注意不设头指针) ,试编写相应的置空队、判队空 、入队和出队等算法。typedef struct queuenode{
Elemtype data;
struct queuenode *next;
}QueueNode; //以上是结点类型的定义
typedef struct{
queuenode *rear;
}LinkQueue; //只设一个指向队尾元素的指针
//linkQ.h 相应算法
void InitQueue( LinkQueue *Q)
{ //置空队:就是使头结点成为队尾元素
Q-rear = Q-rear-next;//头结点成为尾结点
Q-rear-next = Q-rear;//形成循环链表
}
int EmptyQueue( LinkQueue *Q)
{ //判队空
//当头结点的next指针指向自己时为空队
return Q-rear-next-next==Q-rear-next;
}
void EnQueue( LinkQueue *Q, Elemtype x)
{ //入队
//也就是在尾结点处插入元素
QueueNode *p=(QueueNode *) malloc (sizeof(QueueNode));//申请新结点
p-data=x; p-next=NULL;//初始化结点
Q-rear-next-next=p; // 将新结点链入
p-next=Q-rear; //形成循环链表
Q-rear=p;//将尾指针移至新结点
}
Elemtype DeQueue( LinkQueue *Q)
{ //出队
//把头结点之后的元素摘下
Elemtype t;
QueueNode *p;
if(EmptyQueue( Q ))
Error(Queue underflow);
p=Q-rear-next-next; //将要摘下的结点
x=p-data; //保存结点中数据
Q-rear-next-next=p-next;//摘下结点p
free(p);//释放被删结点
return x;
}
⑶ 假设循环队列中只设rear和quelen 来分别指示队尾元素的位置和队中元素的个数,试给出判别此循环队列的队满条件,并写出相应的入队和出队算法,要求出队时需返回队头元素
int FullQueue( CirQueue *Q)
{
//判队满,队中元素个数等于空间大小
return Q-quelen==QueueSize;
}
您可能关注的文档
- (一)电极安装QRS命名与测量.doc
- (东莞)安全生产百日整治行动实施方案.doc
- (中国)对外贸易理论与政策.docx
- (全)微生物综合实验201211.doc
- (定)北仑人民医院绿化摆放方案.doc
- (【通信工程类】外文文献)Wi-Fi,WiMaxandWCDMA(翻译后).doc
- (七年级)二元一次方程组及解不等式组.doc
- (表格式)新人教版二元一次方程组全章教案.doc
- (重要)现代家具企业的企业经营策略.doc
- (重庆理工大学)余成波-远程测控与信息处理.doc
- 2025中国冶金地质总局所属在京单位高校毕业生招聘23人笔试参考题库附带答案详解.doc
- 2025年01月中国人民大学文学院公开招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2024黑龙江省农业投资集团有限公司权属企业市场化选聘10人笔试参考题库附带答案详解.pdf
- 2025汇明光电秋招提前批开启笔试参考题库附带答案详解.pdf
- 2024中国能建葛洲坝集团审计部公开招聘1人笔试参考题库附带答案详解.pdf
- 2024吉林省水工局集团竞聘上岗7人笔试参考题库附带答案详解.pdf
- 2024首发(河北)物流有限公司公开招聘工作人员笔试参考题库附带答案详解.pdf
- 2023国家电投海南公司所属单位社会招聘笔试参考题库附带答案详解.pdf
- 2024湖南怀化会同县供水有限责任公司招聘9人笔试参考题库附带答案详解.pdf
- 2025上海烟草机械有限责任公司招聘22人笔试参考题库附带答案详解.pdf
最近下载
- 2024新沂市中小学教师招聘考试题库及答案.docx VIP
- 新人教版三年级数学上册教学课件《因数中间有0的乘法》.pptx VIP
- 田家四季歌教案.doc VIP
- 《GB 27955-2020过氧化氢气体等离子体低温灭菌器卫生要求》(2025版)深度解析.pptx
- 高级碳排放监测员理论考试复习题库资料(含答案).pdf VIP
- 外科学(总论) 清创术 清创术.pptx VIP
- 《文献检索》课程教学大纲.pdf VIP
- 前置胎盘临床诊断与处理指南课件.ppt VIP
- 事业单位考试公共基础知识考试试题精选3000题.pdf VIP
- 人教版四年级上册数学《平行四边形》(说课课件).pptx VIP
文档评论(0)