- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 --队列 --- C++实现.doc
目录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc2258 一、 题目内容及要求 PAGEREF _Toc2258 3
HYPERLINK \l _Toc16140 二、 题目设计思路 PAGEREF _Toc16140 3
HYPERLINK \l _Toc5084 三、 类设计与类关系 PAGEREF _Toc5084 4
HYPERLINK \l _Toc7971 四、 主要功能函数流程图 PAGEREF _Toc7971 4
HYPERLINK \l _Toc20382 五、 运行结果及分析 PAGEREF _Toc20382 5
HYPERLINK \l _Toc14570 六、 总结 PAGEREF _Toc14570 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),同样采用函数参数
文档评论(0)