- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1
目录
TOC \o 1-3 \h \z \u 2258 一、 题目内容及要求 3
16140 二、 题目设计思路 3
5084 三、 类设计与类关系 4
7971 四、 主要功能函数流程图 4
20382 五、 运行结果及分析 5
14570 六、 总结 6
题目内容及要求
1. 队列是一种连续的存储结构,存入数据只能从一端(称为尾部)进入,取出数据则只能从另一端(头部)取出。根据下述描述实现一个自定义的队列类:
template typename Type
struct LinkNode
{
Type data;
LinkNodeType *next;
LinkNode() : next(NULL)
{ }
LinkNode( const Type x,LinkNodeType *p=NULL ) : data(x),next(p)
{ }
};
template typename Type
class Queue
{
public:
Queue (); //构造函数
~Queue (); //析构函数
inline bool isEmpty () const; //队列是否为空
inline void makeEmpty(); //清空队列
inline void enqueue( const Type x ); //插入一个元素
inline void dequeue( Type x ); //弹出一个元素
inline void getFront( Type x); //得到对头元素
private:
LinkNodeType *front; //指向头结点的指针,front-next-data 是队头的第一个元素
LinkNodeType *rear; //指向队尾(最后添加的一个元素)的指针
inline void handleUnderflow(); //控制队列下溢
};
题目设计思路
queue.h文件
在queue.h头文件中使用命名空间itlab在其中声明:
模板结构体链表结点(struct LinkNode),其中包含的数据成员有:
①模板参数类类型Type 对应的data,存放模板实现类的具体数据,②LinkNodeType 模板类型结构体指针 next,用来指向下一个结点;
成员函数包括:
①LinkNode()无参构造函数,其中数据成员next默认为NULL,②LinkNode(const Type x,LinkNodeType *p = NULL),采用参数初始化表对数据成员初始化,其中第一个参数为常量Type类型的引用x,初始化数据成员data,第二个参赛为结构体类型指针p默认值为NULL,用来初始化数据成员next。
模板类队列(class Queue),包含的公共成员函数有:
①无参构造函数 Queue(),在定义对象时,由系统调用,完成对象的初始化;
②析构函数~Queue(),与构造函数相反,是在撤销对象占用内存前进行一些清理工作。可以被用来执行“用户希望在最后一次使用对象之后所执行的任何操作”;
③内联函数判断队列是否为空,返回值为布尔类型常量,inline bool isEmpty() const;
④内联函数清空队列,无返回值,inline void makeEmpty();
⑤内联函数向队列中插入一个元素,inline void enqueue(const Type x),参数为Type类型常量,插入的新元素作为队列中的队尾结点;
⑥内联函数从队列中弹出一个元素, inline void dequeue( Type x ),无返回值,但传入参数为Type类型的引用x,从对首取出结点元素的数据,将其赋值给x,实现函数值的返回;
⑦内联函数得到对首元素结点的数据,inline void getFront( Type x),同样采用函数参数引用类型间接返回函数值;
私有数据成员包括:
①指向模板结构体类型变量的头指针,LinkNodeType *front
②指向模板结构体类型变量的后继指针,LinkNodeType *rear
③内联函数控制队列下溢,inline void handleUnderflow()。
同时包含其实现文件queue-impl.h,#include queue-impl.h 。
queue-impl.h文件
在qu
您可能关注的文档
- 上册单元测 试卷答案资料讲解.doc
- 上传考核表 和师德考核记录操作培训资料.doc
- 上岗培训考 试题讲义教材.doc
- 上古时期距 今有多少年的历史?有什么记载?研究报告.doc
- 上海201 6年上半年企业法律顾问考试试卷教学幻灯片.docx
- 上海201 7年上半年建筑施工安全员模拟试题教材课程.docx
- 上海201 7年寿险理财规划师考试题讲义教材.docx
- 上海八年级 上一元二次方程专题复习幻灯片资料.doc
- 上海版20 13学年第一学期八年级英语试卷与答案资料讲解.doc
- 上海存志学 校2017学年第一学期初三数学10月月考讲义教材.docx
- GB 4789.11-2014 好 溶血性链球菌 自学.ppt
- GB 4789.36-2016 大肠埃希氏菌O157:H7NM检验 好.ppt
- ADI高速、混合、微弱信号布线指南.pdf
- GBT 4789-13产气荚膜梭状芽孢杆菌检验.ppt
- GB 4789.12-2016 肉毒梭菌及其毒素检验 好.ppt
- BIM机场T3航站楼案例.ppt
- GB 4789.10-2016好 金黄色葡萄球菌检验 包含定性、计数和毒素测定.ppt
- GBT 4789.15,16 -2016 霉菌和酵母计数和检验.ppt
- 浙江省及下辖各市经济财政实力与债务研究(2025)-新世纪评级.pdf
- 赢创中国:2024年可持续发展实践报告.pdf
原创力文档


文档评论(0)