欢迎来到天天文库
浏览记录
ID:56058030
大小:889.50 KB
页数:35页
时间:2020-06-19
《群体类和群体大数据.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学校代码:10128学号:《面向对象的程序设计》实验报告(题目:群体类和群体数据学生姓名:学院:理学院系别:数学系专业:信息与计算科学班级:任课教师:二〇一一年十一月一、实验目的1、了解节点类的声明和实现,学习其使用方法2、了解链表类的声明和实现,学习其使用方法3、了解栈类的声明和实现,学习其使用方法4、了解队列类的声明和实现,学习其使用方法5、掌握对数组元素排序的方法6、掌握对数组元素查找的方法二、实验容1.、编写程序Node.h实现例9-5的节点类,并编写测试程序lab9_1.cpp,实现链表
2、的基本操作2、编写程序link.h实现例9-6的链表类,在测试程序lab_2.cpp中声明两个整型链表A和B,分别插入5元素,然后把B中的元素加入A的尾部3、编写程序queue.h,用链表实现队列(或栈),在测试程序lab9_3.cpp中声明一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来。4、将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组类中,作为成员函数,实现并测试这个类。三、实验程序及结果1.程序一//9_5.h#ifndefNODE_C
3、LASS#defineNODE_CLASS//类定义部分templateclassNode{private:Node*next;//指向后继节点的指针public:Tdata;//数据域//构造函数Node(constT&item,Node*ptrnext=NULL);//在本节点之后插入一个同类节点pvoidInsertAfter(Node*p);//删除本节点的后继节点,并返回其地址Node*DeleteAfter(void);//获取后继节点的地址No
4、de*NextNode(void)const;};//类的实现部分//构造函数,初始化数据和指针成员templateNode::Node(constT&item,Node*ptrnext):data(item),next(ptrnext){}//返回私有的指针成员templateNode*Node::NextNode(void)const{returnnext;}//在当前节点之后插入一个节点ptemplatevoidN
5、ode::InsertAfter(Node*p){p->next=next;//p节点指针域指向当前节点的后继节点next=p;//当前节点的指针域指向p}//删除当前节点的后继节点,并返回其地址templateNode*Node::DeleteAfter(void){Node*tempPtr=next;//将欲删除的节点地址存储到tempPtr中if(next==NULL)//如果当前节点没有后继节点,则返回NULLreturnNULL;next=t
6、empPtr->next;//使当前节点的指针域指向tempPtr的后继节点returntempPtr;//返回被删除的节点的地址}#endif//NODE_CLASS//Node.h#ifndefNODE_LIBRARY#defineNODE_LIBRARY#include#include#include"9_5.h"usingnamespacestd;//生成结点:创建一个结点,数据成员值为item,指向后继结点的指针值为nextPtrtemplate7、lassT>Node*GetNode(constT&item,Node*nextPtr=NULL){Node*newNode;//为新结点分配存空间,然后将item和NextPtr传递给构造函数newNode=newNode(item,nextPtr);if(newNode==NULL)//如果分配存失败,程序中止{cerr<<"Memoryallocationfailure!"<8、{noNewline,addNewline};//输出链表templatevoidPrintList(Node*head,AppendNewlineaddnl=noNewline){//currPtr初始指向表头结点,用于遍历链表Node*currPtr=head;//输出结点数据,直到链表结束while(currPtr!=NULL){//如果换行标志addl==addNewline,则输出换行符if(addnl==addNewline)cout<
7、lassT>Node*GetNode(constT&item,Node*nextPtr=NULL){Node*newNode;//为新结点分配存空间,然后将item和NextPtr传递给构造函数newNode=newNode(item,nextPtr);if(newNode==NULL)//如果分配存失败,程序中止{cerr<<"Memoryallocationfailure!"<8、{noNewline,addNewline};//输出链表templatevoidPrintList(Node*head,AppendNewlineaddnl=noNewline){//currPtr初始指向表头结点,用于遍历链表Node*currPtr=head;//输出结点数据,直到链表结束while(currPtr!=NULL){//如果换行标志addl==addNewline,则输出换行符if(addnl==addNewline)cout<
8、{noNewline,addNewline};//输出链表templatevoidPrintList(Node*head,AppendNewlineaddnl=noNewline){//currPtr初始指向表头结点,用于遍历链表Node*currPtr=head;//输出结点数据,直到链表结束while(currPtr!=NULL){//如果换行标志addl==addNewline,则输出换行符if(addnl==addNewline)cout<
此文档下载收益归作者所有