c++实验题.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c实验题

实验 实验目的 学习结构的定义和使用 学习使用结构构建链表式数据结构 理解结构与指针的关系 学习类的定义、实例化的方法 学习使用构造函数和析构函数 学习类成员访问控制的运用 学习使用静态成员、内联成员函数 学习堆对象的分配、使用与释放 体会面向对象程序设计方法 实验内容 1. 用结构构建链表 设计一个单向链表。从标准输入读取若干整数,建立链表,每次读入的数放入链表结尾。当用户输入 0时,结束链表的建立工作。然后从前往后依次输出链表节点中的内容。每个节点包含两个值,一个是真正存放的整数值,另一个为指向链表中下一个节点的指针。链表中最后一个节点不指向任何节点,所以指针为空(NULL)。表头指针和表尾指针分别指向链表的头节点和尾节点。 [测试数据] 程序输出:Please input integers to build the link(0 TO END): 用户输入:3 4 5 6 7 8 9 0 程序输出:Link elements:3 4 5 6 7 8 9 [实现要求] 用链表存放输入的整数。链表节点空间动态申请。链表节点结构和链表数据类型的参考定义为: //定义链表节点类型 typedef struct node{ int elem; struct node *next; } Node; //定义链表类型 typedef Node * Link; 在链表建立结束后,输出链表节点内容的同时释放节点空间。 处理申请不到空间的情况。 [实现提示] 因为每次插入节点是在链表尾,而输出链表是从链表头,所以可以用两个指针记录链表。一个为头指针,一个为尾指针。 第一次插入节点时需要考虑链表为空的情况。 建立一个新节点的过程为: // 建立一个新的节点 Node * pNode = new Node; if (pNode == NULL) { cout Memory insufficient!; break; } pNode-elem = k; pNode-next = NULL; 顺序遍历链表的过程为: Node *pNode = head; while (pNode != NULL) { 访问pNode所指节点的内容; pNode = pNode-Next; } 将新节点加到链表中的过程为: if (head == NULL) head = tail = pNode; else { tail-next = pNode; tail = pNode; } pNode-elem = k; pNode-next = NULL; 顺序遍历链表的过程为: Node *pNode = head; while (pNode != NULL) { 访问pNode所指节点的内容; pNode = pNode-Next; } 将新节点加到链表中的过程为: if (head == NULL) head = tail = pNode; else { tail-next = pNode; tail = pNode; } [思考问题] 如果是双向链表,程序要做那些改动? 2. 队列类 设计一个队列类,模拟实际生活的队列,队列中的元素服从先进先出的规则。每次有新的元素入列时,就放在队列尾。元素出列时,从队列头出。开始时队列为空。队列的示意图为: [实现要求] 利用上一实验设计的链表结构存放队列类中的队列元素。也即队列元素的空间是动态申请的。 在构造队列对象时,初始化该链表,在析构队列对象时,释放链表所占的空间。 队列类用单独的文件”queue.cpp”实现,队列类的定义放在一个头文件”queue.h”中,主文件名为main.cpp。 队列类中的元素为整数,并提供以下服务: void put (int newVal); //在队尾加入一个新元素 int get ( ); //取出队头元素,并释放节点空间 int getCount(); //取队列中元素的个数 bool empty() ; //判断队列是否为空 bool是Visual C++定义的数据类型,它其实是一种整数类型。具有bool类型的变量只有两种值:true或false。一个条件表达式返回的值就是bool类型的。如表达式i!=0在i的值为0时返回false,在不为0时返回true。 要求将函数empty()和getCount()定义为内联函数,另外两个定义为非内联函数。数据成员全定义为私有成员或保护成员。 使用队列类的主程序为: #include iostream.h #include queue.h int main() { Queue q; int i; //输出队列是否为空 cout Queue empty:; if (q.empty()) cout Y

文档评论(0)

ma33756 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档