- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实 验 报 告
课程名称 数据结构
实验名称 单链表操作验证
实验类型 验证型实验
实验地点 计304机房 实验日期 2011.10.28
指导教师 魏海平
专业 计算机科学与技术
班级 算计1001
学号 1011010113
姓名 张强
辽宁石油化工大学计算机与通信工程学院
数据结构实验报告评分表
项目
要求
分数
有无项目(√)
得分
预习报告
(30分)
实验目的明确
5
实验内容理解透彻
5
实验方案设计完整合理
程序总体框架设计完整
10
完成相关辅助代码
5
测试方案合理
5
实验过程
(30分)
发现问题
5
问题的分析
15
问题的解决方法
10
实验报告
(20分)
内容翔实无缺漏
5
如实记录实验过程
10
撰写规整
5
实验总结
(10分)
实验结果的分析
5
按照结果对原实验方案的改进意见
5
实验体会
(10分)
实验的收获
5
实验内容的发散考虑
5
总分
实验一 单链表操作验证
一.实验目的
(1)掌握线性表的链接存储结构;
(2)验证单链表及其基本操作的实现;
(3)进一步掌握数据结构及算法的程序实现的基本方法。
二.实验内容
(1)用头插法(或尾插法)建立带头结点的单链表;
(2)对已建立的单链表实现插人、删除、查找等基本操作。
三.实验步骤
1.需求分析
本演示程序用VC++编写,完成单链表的生成,任意位置的插入、删除,以及确定某一元素在单链表中的位置。
① 输入的形式和输入值的范围:插入元素时需要输入插入的位置和元素的值;删除元素时输入删除元素的位置;查找操作时需要输入元素的值。在所有输入中,元素的值都是整数。
② 输出的形式:在所有三种操作中都显示操作是否正确以及操作后单链表的内容。其中删除操作后显示删除的元素的值,查找操作后显示要查找元素的位置。
③ 程序所能达到的功能:完成单链表的生成(通过插入操作)、插入、删除、查找操作。
④ 测试数据:
生成单链表 1 23 2 34 3 45 4 56
查找1 位置为23
删除数据 2
插入 2 67
输出数据 1 23 2 67 3 45 4 56
源程序如下:
#includestdio.h
#includestring.h
#includemalloc.h
#includestdlib.h
#define NULL 0
struct data
{
int num;
int d;
struct data *next;
};
struct data *head,*p,*tail;
int len,i;
struct data *creat()
{
int n;
len=sizeof( struct data);
printf(len=);
scanf(%d,n);
printf(输入创建单链表:\n);
head=(struct data*)malloc(len);
printf(数据位置和数据:\n);
scanf(%d%d,head-num,head-d);
tail=head;
for(i=2;i=n;i++)
{
p=(struct data *)malloc(len);
scanf(%d%d,p-num,p-d);
tail-next=p;
tail=p;
}
tail-next=NULL;
return(head);
}
void output(struct data *head)
{
int j;
struct data *p0,*p1;
p=head;
for(j=0;jlen;j++)
{
for(i=0;ilen-j;i++)
p0=p-next;
if(p-nump0-num)
{p1=p;p=p0;p0=p1;}
}
for(p=head;p!=NULL;p=p-next)
printf(%d: %d\n,p-num,p-d);
}
struct data *ins(struct data *head)
{
struct data *p0,*p1,*p2;
struct data *ins;
print
文档评论(0)