版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数据结构》实验指导
实验二:单链表的存储及操作
一'实验目的
1、掌握单链表抽象数据类型的定义。
2、掌握单链表的存储实现。
3、掌握单链表的操作算法实现。
4、了解单链表的应用。
二'实验学时
2学时
三'实验类型
验证性实验
四、实验需求
1、硬件
每位学生配备计算机一台;
2、软件
WindowsXP/Windows7操作系统;开发工具软件:MicrosoftVisualStudio2010。
五'实验理论与预备知识
1、数据结构的基本概念
2、顺序存储结构的特点
3、线性表的特点和基本运算
4、线性表顺序存储结构下的操作算法
六'实验任务
1、单链表抽象数据类型的代码实现
2、编写应用程序,用相关数据验证运算算法
七、实验内容及步骤
1、任务一:有一个单链表对象L,设计一个算法查找最后一个值为x的结点的逻辑序号。并分
析算法的时间和空间复杂度。
实验步骤:
(1)启动VisualStudio2010,创建窗体应用程序。
(2)增加单链表类,代码参考如下:
publicclassLinkList〃定义单链表结点类
(
publicstringdata;〃存放数据元素
publicLinkListnext;〃指向下一个结点的字段
);
classLinkListClass
publicLinkListhead=newLinkListQ;〃单链表头结点
//---------单链表的基本运算算法--------------------
publicvoidCreateListF(string[]split)〃头插法建立单链表
(
LinkLists;
inti;
=null;〃将头结点的next字段置为null
for(i=0;i<h;i++)//循环建立数据结点
(
s=newLinkList();
s.data=split[i];〃创建数据结点s
s.next=;//将s结点插入到开始结点之前,头结点之后
)
publicvoidCreateListR(string[]split)//尾插法建立单链表
(
LinkLists,r;
inti;
r=head;//r始终指向尾结点,开始时指向头结点
for(i=0;i<h;i++)〃循环建立数据结点
(
s=newLinkList();
s.data=split[i];〃创建数据结点s
r.next=s;〃将s结点插入r结点之后
r=s;
)
r.next=null;//将尾结点的next字段置为null
publicstringDispList()〃将单链表所有结点值构成一个字符串返回
stringstr=
LinkListp;
P=;〃p指向开始结点
if(p==null)str="空串”;
while(p!=null)//p不为null,输出p结点的data字段
(
str+=p.data+””;
p=p.next;//p移向下一个结点
)
returnstr;
}
publiciniListLength()〃求单链表数据结点个数
(
intn=0;
LinkListp;
p=head;//p指向头结点,n置为0(即头结点的序号为0)
while(p.next!=null)
(
n++;
p=p.next;
)
return(n);〃循环结束,p指向尾结点,其序号n为结点个数
)
publicboolGetElem(inti,refstringe)〃求单链表中某个数据元素值
(
intj=0;
LinkListp;
p=head;//p指向头结点,j置为0(即头结点的序号为0)
while(j<i&&p!=null)〃找第i个结点p
(
j++;
p=p.next;
)
if(p==null)〃不存在第i个数据结点,返回false
returnfalse;
else〃存在第i个数据结点,返回true
(
e=p.data;
returntrue;
)
)
publicintLocateElem(stringe)〃按元素值查找
inti=1;
LinkListp;
p=;〃p指向开始结点,i置为1(即开始结点的序号为1)
while(p!=null&&p.data!=e)〃查找data值为e的结点,其序号为i
(
p=p.next;
i++;
)
if(p==null)〃不存在元素值为e的结点,返回0
return(0);
else〃存在元素值为e的结点,返回其逻辑序号i
return(i);
)
publicboolListlnsert(inti,stringe)//插入数据元素
(
intj=0;
LinkLists,p;
if(i<1)//i<l时i错误,返回false
returnfolse;
p=head;〃p指向头结点,j置为0(即头结点的序号为0)
while(j<i-1&&P!=null)〃查找第i-1个结点
(
j++;
p=p.next;
)
if(p==null)〃未找到第i-1个结点,返回false
returnfalse;
else〃找到第i-1个结点p,插入新结点并返回true
(
s=newLinkList();
s.data=e;〃创建新结点s,其data字段置为e
s.next=p.next;〃将s结点插入到p结点之后
p.next=s;
returntrue;
)
)
publicboolListDelete(inti,refstringe)〃删除数据元素
(
intj=O;
LinkListq,p;
if(i<1)//i<l时i错误,返回false
returnfalse;
p=head;//p指向头结点,j置为0(即头结点的序号为0)
while(j<i-1&&p!=null)〃查找第i-1个结点
j++;
p=p.next;
)
if(p==null)〃未找到第i-1个结点,返回false
returnfalse;
else//找到第i-1个结点p
(
q=p.next;//q指向第i个结点
if(q==null)〃若不存在第i个结点,返回false
returnfalse;
e=q.data;
p.next=q.next;〃从单链表中删除q结点
q=null;〃释放q结点
returntrue;〃返回true表示成功删除第i个结点
)
)
publicintFindlast(LinkListClassL,stringx)
(
LinkListp=L.;
inti=OJ=i;
while(p!=null)
i++;
if(p.data==x)
j二i;
p=p.next;
)
returnj;
)
(3)设计窗体,界面参考如下:
(4)编写窗体中按钮等控件的代码,调用单链表类,参考如下:
LinkListClassL=newLinkListClassO;//单链表L
privatevoidForml_Load(objectsender,EventArgse)
{
="2,34,5,6,2,3,8";
)
privatevoidbuttonl_Click(objectsender,EventArgse)
(
stringstr=,Trim();
if(str==
=”操作提示:必须输入元素”;
else
(
string[]split=(newChai•口{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 照相机制造项目可行性研究报告
- 如何培养责任心-shincell
- 永德县林业局规章制度
- 2024-2030全球与中国激光塑料焊接系统市场现状及未来发展趋势
- 山西省2024九年级物理全册第十八章电功率18.4焦耳定律2焦耳定律的相关计算课件新版新人教版
- 2024年南召县《高等数学(一)》(专升本)高分冲刺试卷含解析
- 2024年云梦县《高等数学(一)》(专升本)考前冲刺预测试卷含解析
- 2024年东莞市《高等数学(一)》(专升本)统考试题含解析
- 在多元智能活动中培养幼儿的参与意识
- 低温冰雪天气的气象服务对策与思考
- 俄语入门-知到答案、智慧树答案
- 广东省深圳市福田区2024届中考历史模拟试卷含解析
- 基于项目式学习的高中化学教学的设计与实施
- 中国建筑监理行业市场现状分析及竞争格局与投资发展研究报告2024-2034版
- 中等职业学校信息技术课程标准(2020年版)(文本精排版)
- 人教部编统编版五年级下册语文第七单元检测卷(含答案解析)
- 2024-2029年爆炸物检测设备行业市场现状供需分析及市场深度研究发展前景及规划投资研究报告
- 两位数加两位数计算家庭作业练习题大全附答案
- 循环流化床锅炉一二次风风量配比及风压选定
- 全国高中数学 青年教师展评课 函数的单调性教学设计(安徽亳州一中) (2).doc
- 非煤地下矿山员工安全生产教育培训试卷(含答案).doc
评论
0/150
提交评论