- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
合工大宣城校区数据结构实验报告——单链表【精选】.doc
O(∩_∩)O
数据结构实验报告
姓名
学号
专业班级
指导教师
实验时间
11月9日
实验地点
计算中心
实验二 单链表实验
实验目标
熟练掌握线性表的链式存储结构。
熟练掌握单链表的有关算法设计。
根据具体问题的需要,设计出合理的表示数据的链式存储结构,并设计相关算法。
实验内容和要求
Ⅰ.实验要求
本次实验中的链表结构指带头结点的单链表
单链表结构和运算定义,算法的实现以库文件方式实现,不得在测试主程序中直接实现;比如存储、算法实现放入文件:linkedList.h
实验程序有较好可读性,各运算和变量的命名直观易懂,符合软件工程要求;
程序有适当的注释。
Ⅱ.实验内容
1尾插法创建单链表,打印创建结果。
2头插法创建单链表,打印创建结果。
3销毁单链表。
4求链表长度。
5求单链表中第i个元素(函数),若不存在,报错。
6在第i个结点前插入值为x的结点
7链表中查找元素值为x的结点,成功返回结点指针,失败报错
8删除单链表中第i个元素结点
9在一个递增有序的单链表L中插入一个值为x的元素,并保持其递增有序特性
10将单链表L中的奇数项和偶数项结点分解开(元素值为奇数、偶数),分别放入新的单链表中,然后原表和新表元素同时输出到屏幕上,以便对照求解结果
11求两个递增有序单链表L1和L2中的公共元素,放入新的单链表L3中
12删除递增有序单链表中的重复元素,要求时间性能最好
13递增有序单链表L1、L2,不申请新结点,利用原表结点对2表进行合并,并使得合并后成为一个集合,合并后用L1的头结点作为头结点,删除L2的头结点,要求时间性能最好
扩展实验:
1(递增有序)单链表表示集合A、B,实现:
C=A?B,C=A?B,C=A-B
A=A?B,A=A?B,A=A-B
2(递增有序)单链表表示集合A、B,判定A是否B的子集
3已知一个带有表头结点的单链表,结点结构如下图。假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。
4(2011)(15 分)一个长度为L(L≥1)的升序序列S,处在第 个位置的数称为S 的中位数。例如,若序列S1=(11, 13, 15, 17, 19),则S1 的中位数是15。两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若S2=(2, 4, 6, 8, 20),则S1 和S2 的中位数是11。
现有两个等长升序序列A 和B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列A 和B 的中位数
数据结构设计
struct Node
{
int value;
Node *next;
Node(int value = 0, Node *pNext = 0)
{
this-value = value;
this-next = pNext;
}
};
class linkedList
{
public :
linkedList();//构造函数
~linkedList();//3析构函数,销毁单链表
int length();//4求链表长度
Node *listLocateI(int i);//5求单链表中第i个元素
bool listInsert(int i,int x);//6在第i个结点前插入值为x的结点
Node *listLocateX(int x);//7链表中查找元素值为x的结点,成功返回结点指针,失败报错。
bool listDelete(int i);//8删除单链表中第i个元素结点
Node *head;
};
算法设计
1~8为书中已经给出的基本算法,
9.定义一个指针p指向头结点,当p-next != NULL,循环比较p-next-value与x的值之间的大小,若p-next-valuex,就令p = p-next,当申请新结点,存储x,将新结点插入在p之后,完成插入。
10.定义两个链表L1,L2, 定义指针*p,*u,*r,分别指向L的首元素结点,L1,L2的头结点上,循环判断,如果p-value%2!=0,就插入到表L1中,否则,就插入到表L2中,然后令p=p-next,直至p!=NULL结束循环,输出L1,L2,其中L1表示奇结点,L2表示偶结点
11.定义两个链表L3,定义指针*p,*u,*r,分别指向L3的头结点,L1,L2的首元素结点上,循环判断,如果u-value==r-value,就把该值插入到表L3中,如果u-valuer-v
您可能关注的文档
最近下载
- 唐顿庄园第一季.doc VIP
- 经济责任审计报告.doc VIP
- 工程监理企业资质等级和业务范围.pdf VIP
- 煤矿风门知识培训课件.ppt VIP
- 加油站安全现状评价报告(2025版).docx VIP
- 2025年山西省福利彩票市场管理员招聘备考题库及1套参考答案详解.docx
- GB_T 50331-2002《城市居民生活用水量标准》.pdf VIP
- 认证认可工程师岗位面试问题及答案.docx VIP
- DL-T-5161.8-2018电气装置安装工程质量检验及评定规程盘、柜、及二次回路接线施工质量检验.docx VIP
- ANSI-ASME B17.1-1967(R2003) 键和键槽.pdf VIP
原创力文档


文档评论(0)