1 / 11
文档名称:

数据结构实验报告--单链表.docx

格式:docx   大小:89KB   页数:11页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验报告--单链表.docx

上传人:小博士 2019/7/19 文件大小:89 KB

下载得到文件列表

数据结构实验报告--单链表.docx

文档介绍

文档介绍:2016级数据结构实验报告实验名称:实验一线性表——题冃1学生姓名:李文超班级:2015661131班内序号:15学号:2015522147H期:2016年11月13日实验要求实验ti的:根据线性表的抽象数据类型的定义,选择下面任一种链式结构实现线性表,并完成线性表的基本功能。线性表存储结构(五选一):1、带头结点的单链表2、不带头结点的单链表3、循环链表4、双链表5、静态链表线性表的基木功能:1、 构造:使用头插法、尾插法两种方法2、 插入:要求建立的链表按照关键字从小到大有序3、 删除4、 查找5、 获取链表长度6、 销毁7、 其他:可白行定义编写测试mainO函数测试线性表的正确性。程序分析1存储结构单链表的存储:(1) 链表用-•组任意的存储单元來存放线性表的结点。这组存储单元既可以是连续的,也可以是不连续的,甚至零散地分布在内存的某些位置。(2) 链表屮结点的逻辑次序和物理次序不一定相同。为了能正确表示结点间的逻辑关系,在存储每个元索值的同时,还要存储该元索的直接后继元索的位査信息,这个信息称为指针或链。结点结构I 1 1data域—存放结点值的数据域Idata|next|next域---存放结点的直接后继的地址的指针域单链表在内存中的存储示意地址 内存单元10C0Hfront2关键算法分析1、关键算法:(1) 头插法自然语言描述:a:在堆中建立新结点b:将a[i]写入到新结点的数据域c:修改新结点的指针域d:修改头结点的指针域。将新结点加入链表中伪代码描述a:Node<T>*s=newNode<T>b:s->data二a[i]c:s->next=front->ncxt;d:front->ncxt=s(2) 尾插法口然语言描述:a:在堆屮建立新结点:b:将a[i]写入到新结点的数据域:c:将新结点加入到链表中d:修改修改尾指针伪代码描述a:Node<T>*s=newNode<T>b:s->data=a[i]c:r~>next二s;d:r=s遍历打印函数自然语言描述:a:判断该链表是否为空链表,如果是,报错b:如果不是空链表,新建立一个temp指针c:将temp指针指向头结点d:打印temp指针的data域e:逐个往后移动temp指针,直到temp指针的指向的指针的next域为空伪代码描述a:Iffront->next~NULL©Throw”anemptylist”②Node<T>*temp=front->next;b:whi1e(temp-〉next)c:cout<<temp->da ;d:tcmp=temp->next;获取链农长度函数自然语言描述:a:判断该链表是否为空链表,如果是,输出长度0b:如果不是空链表,新建立一个temp指针,初始化整形数n为0c:将temp指针指向头结点d:判断temp指针指向的结点的next域是否为空,如果不是,n加一,否则returnne:使tei叩指针逐个后移,重复d操作,直到te叩指针指向的结点的next域为0,返回n伪代码描述a:ifront->next==NULLb:Node<T>*temp=front->next;c:whi1e(temp->next)d:temp=temp->next;析构/删除函数自然语言描述:a:新建立一个指针,指向头结点b:判断要释放的结点是否存在,c:暂时保存要释放的结点d:移动a中建立的指针e:释放要禅放的指针伪代码描述a:Node<T>*p=frontb:while(p)c:front二pd:p=p->nexte:deletefront按位查找函数自然语言描述:a:初始化工作指针P和计数器j,P指向第一个结点,j二1b:循环以下操作,直到p为空或者j等于1:P指向下一个结点:j加1c:若p为空,说明第i个元索不存在,抛出异常d:否则,说明p指向的元素就是所杏找的元素,返回元素地址伪代码描述a:Node<T>*p=front->next;j=l;b:while(p&&j!=l)®:p=p->noxt②:j++c:if(!p)throw”error”d:returnp按位查找函数自然语言描述:a:初始化工作指针p和计数器j,p指向第一个结点,j=lb:循环以卜•操作,找到这个元索或者p指向最后一个结点®:判断P指向的结点是不是要査找的值,如果是,返回j,否则P指向下一个结点,并-FLj的值加一c:如果找到最麻一个结点还没有找到要杳找的元素,返冋杏找失败信息伪代码描述a:Node<T>*p=front->next;j=l;b:while(p)①:if(p->next==x)returnjp二p->nextj++c:return"error"插入函数自然语言描述:a:在堆中建立新结点b:将要插入的结点的数据写入到新结点的数据域c:修改新结点的指针域d

最近更新

2025年度公司经理国际化视野拓展聘用协议 8页

2025年度便利店智能管理系统委托运营合作协议.. 9页

2025年度企业员工宿舍租赁合同签订及配套设施.. 8页

2025年度二手汽车转让协议范本模板下载 9页

新能源汽车充电服务合同 6页

第七章第三方物流的绩效衡量与监控 33页

新建住宅专项贷款合同样本 6页

运动的合成与分解 22页

第19课《雪》学习要点(苏教版初三下)doc初中语.. 3页

层布式钢纤维混凝土基本性能与应用研究 3页

文化传媒投融资居间合同3篇 53页

教辅材料快递运输协议3篇 48页

度区域代理经销合同 6页

教育园区装修工程范本3篇 54页

电子标签配线架系统构成简介XX0204更新 14页

建筑材料进口海运合同范本3篇 51页

齿轮箱体排油螺纹孔失效机理分析 3页

高精度内径量仪关键零件加工工艺的研究 3页

读书节主题班会 12页

面向制造业服务化的辽宁制造业升级转型对策研.. 3页

间隙对两轴液压振动试验系统动力学影响的研究.. 3页

2024年个人年终工作总结常用版(5篇) 15页

重点用能单位能耗在线监测系统研究 3页

郑州市中老年人羽毛球消费现状调查研究——以.. 3页

基于区块链的智能电表数据管理-全面剖析 26页

近六年我国高校图书馆员职业能力计量分析 3页

输电杆塔螺栓连接区域局部结构有限元分析 3页

车联网系统中语音电路EMI滤波设计和优化 3页

超声波强化提取香椿叶总三萜的工艺研究 3页

财政专项资金预算绩效管理初探 3页