- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE
PAGE1
计算机学院实验报告专用纸
实验室:网络实验室机号:网20实验日期:2008年3月21日
姓名
XXX
班级
课程名称
数据结构
任课教师
实验项目名称
线性表基本操作
指导教师
实验组别
X
同组者
无
教师评语及成绩:
实验成绩:教师签字:
(请按照实验报告的有关要求书写。一般必须包括:1、实验目的;2、实验内容;3、实验步骤与方法;4、实验数据与程序清单;5、出现的问题与解决方法;6、实验结果、结果分析与体会等内容)
1、实验目的
(1)掌握使用C或C++上机调试程序的基本方法;
(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。
2、实验内容
建立一个数据域定义为整型的单链表,根据输入的整数,进行插入、删除、取数据元素等操作。
3、实验步骤和方法
(1)认真阅读和掌握和本实验相关的教材内容;
(2)认真阅读和掌握本章相关内容的程序,分析、理解给出的示例程序;
(3)上机调试程序,并设计输入数据运行程序;
(4)保存和打印出程序的运行结果,并结合程序进行分析;
(5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果。
4、实验数据与程序清单
计算机学院实验报告附页
姓名
XXX
班级
实验名称
线性表基本操作和简单程序
1)头文件模块
#includeiostream.h//头文件
#includemalloc.h//库头文件动态分配内存空间
typedefintelemtype;//定义数据域的类型
typedefstructlinknode//定义结点类型
{
elemtypedata;//定义数据域
structlinknode*next;//定义结点指针
}nodetype;
2)创建单链表
nodetype*create()//建立单链表,由用户输入各结点data域之值,
//以0表示输入结束
{
elemtyped;//定义数据元素d
nodetype*h=NULL,*s,*t;//定义结点指针
inti=1;
cout建立一个单链表endl;
while(1)
{
cout输入第i结点data域值:;
cind;
if(d==0)break;//以0表示输入结束
if(i==1)//建立第一个结点
{
h=(nodetype*)malloc(sizeof(nodetype));//表示指针h
h-data=d;h-next=NULL;t=h;//h是头指针
}
else//建立其余结点
{
s=(nodetype*)malloc(sizeof(nodetype));
s-data=d;s-next=NULL;t-next=s;
t=s;//t始终指向生成的单链表的最后一个节点
}
i++;
}
returnh;
}
3)输出单链表中的元素
voiddisp(nodetype*h)//输出由h指向的单链表的所有data域之值
{
nodetype*p=h;
计算机学院实验报告附页
姓名
XXX
班级
实验名称
线性表基本操作和简单程序
cout输出一个单链表:endl;
if(p==NULL)cout空表;
while(p!=NULL)
{
coutp-data;p=p-next;
}
coutendl;
}
4)计算单链表的长度
intlen(nodetype*h)//返回单链表的长度
{
inti=0;
nodetype*p=h;
while(p!=NULL)
{
p=p-next;i++;
}
returni;
}
5)寻找第i个节点
nodetype*find(nodetype*h,inti)//返回第i个节点的指针
{
nodetype*p=h;
intj=1;
if(ilen(h)||i=0)
returnNULL;//i上溢或下溢c
else
{
文档评论(0)