实验报告群体类和群体数据.docx
- 文档编号:3090450
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:40
- 大小:42.45KB
实验报告群体类和群体数据.docx
《实验报告群体类和群体数据.docx》由会员分享,可在线阅读,更多相关《实验报告群体类和群体数据.docx(40页珍藏版)》请在冰豆网上搜索。
实验报告群体类和群体数据
(
题目:
群体类和群体数据
学生姓名:
燕飞
学院:
理学院
系别:
数学系
专业:
信息与计算科学
班级:
信计12-2
任课教师:
侯睿
二〇一五年十一月
一、实验目的
1、了解节点类的声明和实现,学习其使用方法
2、了解链表类的声明和实现,学习其使用方法
3、了解栈类的声明和实现,学习其使用方法
4、了解队列类的声明和实现,学习其使用方法
5、掌握对数组元素排序的方法
6、掌握对数组元素查找的方法
二、实验内容
1、编写程序Node.h实现例9-5的节点类,并编写测试程序lab9_1.cpp,实现链表的基本操作。
2、编写程序link.h实现例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、将直接插入排序、直接选择排序、冒泡排序、顺序查找函数封装到第九章的数组类中,作为成员函数,实现并测试这个类。
三、实验程序
1、
#ifndefNODE_CLASS
#defineNODE_CLASS
template
classNode
{
private:
Node
public:
Tdata;
Node(constT&item,Node
voidInsertAfter(Node
Node
Node
};
template
Node
:
Node(constT&item,Node
data(item),next(ptrnext)
{}
template
Node
:
NextNode(void)const
{
returnnext;
}
template
voidNode
:
InsertAfter(Node
{
p->next=next;
next=p;
}
template
Node
:
DeleteAfter(void)
{
Node
if(next==NULL)
returnNULL;
next=tempPtr->next;
returntempPtr;
}
#endif
#ifndefNODE_LIBRARY
#defineNODE_LIBRARY
#include
#include
#include"9_5.h"
usingnamespacestd;
template
Node
{
Node
newNode=newNode
if(newNode==NULL)
{
cerr<<"Memoryallocationfailure!
"< exit (1); } returnnewNode; } enumAppendNewline{noNewline,addNewline}; template voidPrintList(Node { Node while(currPtr! =NULL) { if(addnl==addNewline) cout< else cout< currPtr=currPtr->NextNode(); } } template intFind(Node { Node prevPtr=NULL; while(currPtr! =NULL) { if(currPtr->data==item) return1; prevPtr=currPtr; currPtr=currPtr->NextNode(); } return0; } template voidInsertFront(Node { head=GetNode(item,head); } template voidInsertRear(Node { Node if(currPtr==NULL) InsertFront(head,item); else { while(currPtr->NextNode()! =NULL) currPtr=currPtr->NextNode(); newNode=GetNode(item); currPtr->InsertAfter(newNode); } } template voidDeleteFront(Node { Node if(head! =NULL) { head=head->NextNode(); deletep; } } template voidDelete(Node { Node if(currPtr==NULL) return; while(currPtr! =NULL&&currPtr->data! =key) { prevPtr=currPtr; currPtr=currPtr->NextNode(); } if(currPtr! =NULL) { if(prevPtr==NULL) head=head->NextNode(); else prevPtr->DeleteAfter(); deletecurrPtr; } } template voidInsertOrder(Node { Node prevPtr=NULL; currPtr=head; while(currPtr! =NULL) { if(item break; prevPtr=currPtr; currPtr=currPtr->NextNode(); } if(prevPtr==NULL) InsertFront(head,item); else { newNode=GetNode(item); prevPtr->InsertAfter(newNode); } } template voidClearList(Node { Node currPtr=head; while(currPtr! =NULL) { nextPtr=currPtr->NextNode(); deletecurrPtr; currPtr=nextPtr; } head=NULL; } #endif #include #include"9_5.h" #include"node.h" usingnamespacestd; intmain() { Node inti,key,item; for(i=0;i<10;i++) { cin>>item; InsertFront(head,item); } cout<<"List: "; PrintList(head,noNewline); cout< cout<<"请输入一个需要删除的整数: "; cin>>key; prevPtr=head; while(Find(head,key,prevPtr)! =NULL) { if(prevPtr==NULL) head=head->NextNode(); else delPtr=prevPtr->DeleteAfter(); deletedelPtr; } cout<<"List: "; PrintList(head,noNewline); cout< ClearList(head); } 2、 #include"link.h" intmain() { LinkedList for(inti=0;i<5;i++) { A.InsertRear(2*i+1); B.InsertRear(2*i+2); } A.Reset(); cout<<"链表A的元素为: "; while(! A.EndOfList()) { cout< A.Next(); } cout< B.Reset(); cout<<"链表B的元素为: "; while(! B.EndOfList()) { cout< B.Next(); } cout< cout<<"把B中的元素插入A中..."< B.Reset(); while(! B.EndOfList()) { A.I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 群体 数据