实验报告群体类和群体数据Word格式文档下载.docx
- 文档编号:16001388
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:40
- 大小:42.45KB
实验报告群体类和群体数据Word格式文档下载.docx
《实验报告群体类和群体数据Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验报告群体类和群体数据Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
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<
classT>
classNode
{
private:
Node<
T>
*next;
public:
Tdata;
Node(constT&
item,Node<
*ptrnext=NULL);
voidInsertAfter(Node<
*p);
*DeleteAfter(void);
*NextNode(void)const;
};
Node<
:
Node(constT&
*ptrnext):
data(item),next(ptrnext)
{}
*Node<
NextNode(void)const
returnnext;
}
voidNode<
InsertAfter(Node<
*p)
p->
next=next;
next=p;
}
DeleteAfter(void)
*tempPtr=next;
if(next==NULL)
returnNULL;
next=tempPtr->
next;
returntempPtr;
#endif
#ifndefNODE_LIBRARY
#defineNODE_LIBRARY
#include<
iostream>
cstdlib>
#include"
9_5.h"
usingnamespacestd;
*GetNode(constT&
*nextPtr=NULL)
*newNode;
newNode=newNode<
(item,nextPtr);
if(newNode==NULL)
{
cerr<
<
"
Memoryallocationfailure!
"
<
endl;
exit
(1);
}
returnnewNode;
enumAppendNewline{noNewline,addNewline};
voidPrintList(Node<
*head,AppendNewlineaddnl=noNewline)
*currPtr=head;
while(currPtr!
=NULL)
if(addnl==addNewline)
cout<
currPtr->
data<
else
;
currPtr=currPtr->
NextNode();
intFind(Node<
*head,T&
*&
prevPtr)
prevPtr=NULL;
if(currPtr->
data==item)
return1;
prevPtr=currPtr;
return0;
voidInsertFront(Node<
head,Titem)
head=GetNode(item,head);
voidInsertRear(Node<
head,constT&
item)
*newNode,*currPtr=head;
if(currPtr==NULL)
InsertFront(head,item);
while(currPtr->
NextNode()!
newNode=GetNode(item);
InsertAfter(newNode);
voidDeleteFront(Node<
head)
*p=head;
if(head!
head=head->
deletep;
voidDelete(Node<
head,Tkey)
*currPtr=head,*prevPtr=NULL;
return;
while(currPtr!
=NULL&
&
data!
=key)
if(currPtr!
if(prevPtr==NULL)
prevPtr->
DeleteAfter();
deletecurrPtr;
voidInsertOrder(Node<
*currPtr,*prevPtr,*newNode;
currPtr=head;
if(item<
data)
break;
}
if(prevPtr==NULL)
voidClearList(Node<
*&
head)
*currPtr,*nextPtr;
nextPtr=currPtr->
currPtr=nextPtr;
head=NULL;
#endif
node.h"
intmain()
int>
*head=NULL,*prevPtr,*delPtr;
inti,key,item;
for(i=0;
i<
10;
i++)
cin>
>
item;
InsertFront(head,item);
List:
PrintList(head,noNewline);
请输入一个需要删除的整数:
cin>
key;
prevPtr=head;
while(Find(head,key,prevPtr)!
delPtr=prevPtr->
deletedelPtr;
ClearList(head);
2、
link.h"
LinkedList<
A,B;
for(inti=0;
i<
5;
A.InsertRear(2*i+1);
B.InsertRear(2*i+2);
A.Reset();
链表A的元素为:
;
while(!
A.EndOfList())
cout<
A.Data()<
A.Next();
B.Reset();
链表B的元素为:
B.EndOfList())
B.Data()<
B.Next();
把B中的元素插入A中..."
A.I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 群体 数据