欢迎来到天天文库
浏览记录
ID:47449623
大小:910.50 KB
页数:15页
时间:2019-08-24
《实验4群体类和群体数据》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、.学校代码:学号:《面向对象程序设计》实验报告(题目:群体类和群体数据学生姓名:学院:系别:专业:班级:任课教师:二〇一五年十二月..群体类和群体数据一、实验目的1.了解节点类的声明和实现,学习其使用方法2.了解链表类的声明和实现,学习其使用方法3.了解栈类的声明和实现,学习其使用方法4.了解队列类的声明和实现,学习其使用方法5.掌握对数组元素排序的方法6.掌握对数组元素查找的方法二、实验任务1.编写程序Node.h实现例9-5的节点类,并编写测试程序lab9_1.cpp,实现链表的基本操作2.编写程序link.h实现例
2、9-6的链表类,在测试程序lab_2.cpp中声明两个整型链表A和B,分别插入5元素,然后把B中的元素加入A的尾部3.编写程序queue.h,用链表实现队列(或栈),在测试程序lab9_3.cpp中声明一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来。4.(选做)声明course(课程)类,有属性:课程名charname[21]、成绩shortscore;在实验七的student类中增加属性;所修课程course,为课程类对象的链表。在测试程序中测试这个类,学生类与课程类关系如图..5.将直
3、接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组类中,作为成员函数,实现并测试这个类三、实验内容:1.//9-5.h#ifndefNODE_CLASS#defineNODE_CLASStemplateclassNode{private:Node*next;//指向后继节点的指针public:Tdata;//数据域Node(constT&item,Node*ptrnext=NULL);voidInsertAfter(Node*p);Node*DeleteAfter(
4、void);Node*NextNode(void)const;};templateNode::Node(constT&item,Node*ptrnext):data(item),next(ptrnext){}templateNode*Node::NextNode(void)const{returnnext;}templatevoidNode::InsertAfter(Node*p){p->next=next;//p节点指针域指向当前
5、节点的后继节点..next=p;//当前节点的指针域指向p}templateNode*Node::DeleteAfter(void){Node*tempPtr=next;//将欲删除的节点地址存储到tempPtr中if(next==NULL)//如果当前节点没有后继节点,则返回NULLreturnNULL;next=tempPtr->next;//使当前节点的指针域指向tempPtr的后继节点returntempPtr;//返回被删除的节点的地址}#endif//NODE_CLASS//
6、Node.h#ifndefNODE_LIBRARY#defineNODE_LIBRARY#include#include#include"9_5.h"usingnamespacestd;templateNode*GetNode(constT&item,Node*nextPtr=NULL){Node*newNode;newNode=newNode(item,nextPtr);if(newNode==NULL)//如果分配内存失败,程序中止{cer
7、r<<"Memoryallocationfailure!"<voidPrintList(Node*head,AppendNewlineaddnl=noNewline){Node*currPtr=head;while(currPtr!=NULL){if(addnl==addNewline)cout<data<8、lsecout<data<<"";currPtr=currPtr->NextNode();}}templateintFind(Node*head,T&item,Node*&prevPtr){Node*currPtr=head;//从第一个结点开始遍历prevPtr
8、lsecout<data<<"";currPtr=currPtr->NextNode();}}templateintFind(Node*head,T&item,Node*&prevPtr){Node*currPtr=head;//从第一个结点开始遍历prevPtr
此文档下载收益归作者所有