- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环链队列课程设计
课 程 设 计
课程:数据结构
题目:循环链队列
班级:
姓名:
学号:
设计时间:
成绩:
指导教师:
一、题目
题目 循环链队列4 结构 单链(指向后继) 表示 类对象 回传方式 操作 初始化、入队、出队、清空队列。
二、概要设计
1.存储结构
typedef int DataType;
struct Node{
DataType d;
struct Node *next;
};
class Queue{
struct Node *trail;
public:
Queue();
void In(DataType x);
int Out(DataType x);
int Clear();
};
trail Data next Data next … Data next Data next
2.基本操作(声明函数)
⑴Queue::Queue() ——构造函数
⑵void Queue::In(DataType x)——用于入队列
Queue::Out(DataType x)——用于出队列
⑷int Queue::Clear()——用于清空队列
三、设计要点
⑴入队列核心步骤
void Queue::In(DataType x)
{
if(NULL==trail){
trail=new Node;
if (NULL==trail){
cout内存不足,分配出错!\n;
exit(1);
}
trail-d=x;
trail-next=trail;
}
else {
struct Node *tmp=trail-next;
trail-next=new Node;
if (trail-next==NULL){
cout内存不足,分配出错!\n;
exit(1);
}
trail=trail-next;
trail-d=x;
trail-next=tmp;;
}
}
(2)出队列核心步骤
int Queue::Out(DataType x)
{
if(NULL==trail){
cout此队列为空!\n;
return 1;
}
else if(trail==trail-next trail!=NULL){
x=trail-d;
delete trail;
trail=NULL;
}
else {
struct Node *tmp=trail-next;
x=tmp-d;
trail-next=tmp-next;
delete tmp;
}
return 0;
}
(3)清空队列int Queue::Clear()
{
struct Node *tmp=NULL;
if(NULL==trail){
cout此队列为空!\n;
return 1;
}
else{
while(trail!=trail-next){
tmp=trail-next;
trail-next=tmp-next;
delete tmp;
}
delete trail;
trail=NULL;
}
return 0;
}
框图
Queue - trail:Node * + Queue()
+ In(DataType x):void
+ Out(DataType x):int
+ Clear():int Queue类的UML图
四、源程序(附测试数据)
#include iostream
using namespace std;
typedef int DataType;
struct Node{
DataType d;
struct Node *next;
};
class Queue{
struct Node *trail;
public:
Queue();
void In(DataType x);
int Out(DataType x);
int Clear();
};
Queue::Queue(){
trail=NULL;
}
void Queue::In(DataType x)
{
if(NULL==trail){
trail=new Node;
if (NULL=
您可能关注的文档
- 小篮子折法英语教程.doc
- 小红伞常见问题答疑.doc
- 小鼠精原干细胞冷冻保存.pdf
- 小麦苗枯病菌的ITS分析及PCR检测.pdf
- 尖晶石综述.doc
- 尖锐湿疣复发的危险因素分析.pdf
- 尼龙圈在儿童肠道粗蒂息肉肠镜下切除术中的应用及护理_宁瑞花.pdf
- 尸温与死亡时间关系的研究.pdf
- 尾矿区重金属污染浓度预测模型及其应用.pdf
- 局域网应用问题专题解答.doc
- 华创证券-本轮牛市百只五倍股画像-250827.docx
- -25年2月-特朗普的关税新政将如何改变转让定价策略.docx
- 2025年中国人形机器人六维力传感器市场调研报告.pdf
- 上海证券交易所会计监管动态(2025年第4期).docx
- 2025年8月飞瓜抖音电商营销月报-飞瓜数据.docx
- 2025年光伏企业绿色低碳评价报告-IPE公众环境研究中心-2025.7-74页.docx
- 2025年中国AI应用出海企业发展需求洞察报告-36氪-2025-72页.docx
- 【50+37】增值税促进小微企业发展税收优惠答疑汇总.pdf
- 2025中国运动与户外消费洞察.pdf
- 全球人工智能社会发展研究报告(2025).pdf
文档评论(0)