单链表实验报告及程序.doc

单链表实验报告及程序.doc

ID:56730214

大小:1.45 MB

页数:17页

时间:2020-07-06

单链表实验报告及程序.doc_第1页
单链表实验报告及程序.doc_第2页
单链表实验报告及程序.doc_第3页
单链表实验报告及程序.doc_第4页
单链表实验报告及程序.doc_第5页
资源描述:

《单链表实验报告及程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构与算法实验课程---单链表兰州财经大学班级:姓名:学号:指导老师:目录一.前言21.1实验目的21.2实验容21.3实验环境3二.需求分析32.1线性表32.2抽象数据类型线性表定义32.3线性表的链式表示42.3.1存储方法42.3.2链表的结点结构52.3.3头指针head和终端结点指针域的表示52.3.4单链表类型描述52.3.5 指针变量和结点变量6三.编程实现63.1主要函数代码63.1.1.主程序63.2.单链表的建立、插入、删除等操作。11四.测试调试与结果分析134.1正常测试数据及运行结果13五.收获及体会17六.参考文献17一.前言1.1实验目的掌握单链

2、表的基本操作,插入、删除、查找等算法的实现。1.2实验容(1)初始化单链表。   (2)在单链表中插入一个新结点。   (3)删除单链表中的某一个结点。   (4)在单链表中查找某结点并返回其位置。   (5)打印输出La中的结点元素值1.3实验环境1、硬件:PC/4G存/512G硬盘/100M/NIC2、软件:操作系统Windows7MicrosoftVisualStudio6.0集成开发环境VC++6.0二.需求分析2.1线性表1、线性表概念:n个数据元素组成的有限序列。表示为(a1,a2,…,ai,ai+1,…,an)。2、逻辑特征:(1)1

3、1,a1无直接前驱;ai的直接后继是ai+1,an无直接后继。(2)元素同构,且不能出现缺项。2.2抽象数据类型线性表定义通常采用抽象数据类型研究数据结构。线性表查询数据类型如下:ADTList{数据对象:D={ai

4、ai∈ElemSet,i=1,2,...,n,n≥0}数据关系:R1={

5、ai-1,ai∈D,i=2,...,n}基本操作:InitList(&L)操作结果:构造一个空的线性表L。DestroyList(&L)初始条件:线性表L已存在。操作结果:销毁线性表L。ListEmpty(L)初始条件:线性表L已存在。操作结果:若L为空表,则返回TRUE,否则

6、FALSE。ListLength(L)初始条件:线性表L已存在。GetElem(L,i,&e)初始条件:线性表L已存在,1≤i≤ListLength(L)操作结果:用e返回L中第i个元素的值。LocateElem(L,e,compare())初始条件:线性表L已存在,compare()是元素判定函数。操作结果:返回L中第i个与e满足关系compare()的元素的位序。若这样的元素不存在,则返回值为0。操作结果:返回L中元素个数。PriorElem(L,cur_e,&pre_e)初始条件:线性表L已存在。操作结果:若cur_e是L的元素,但不是第一个,则用pre_e返回它的前驱,否则

7、操作失败,pre_e无定义。NextElem(L,cur_e,&next_e)初始条件:线性表L已存在。操作结果:若cur_e是L的元素,但不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义。ListTraverse(L,visit())初始条件:线性表L已存在。操作结果:依次对L的每个元素调用函数visit()。一旦visit()失败,则操作失败。ClearList(&L)初始条件:线性表L已存在。操作结果:将L重置为空表。PutElem(L,i,&e)初始条件:线性表L已存在,1≤i≤ListLength(L)操作结果:L中第i个元素赋值同e的值。Li

8、stInsert(&L,i,e)初始条件:线性表L已存在,1≤i≤ListLength(L)+1操作结果:在L的第i个元素之前插入新的元素e,L的长度增1。ListDelete(&L,i,&e)初始条件:线性表L已存在且非空,1≤i≤ListLength(L)操作结果:删除L的第i个元素,并用e返回其值,L的长度减1。}ADTList2.3线性表的链式表示2.3.1.存储方法方式存储的线性表简称为链表(LinkedList),链表的具体存储表示为:①用一组任意的存储单元来存放线性表的结点(这组存储单元既可以是连续的,也可以是不连续的)②链表中结点的逻辑次序和物理次序不一定相同。为了

9、能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)或链(link))注意: 链式存储是最常用的存储方式之一,它不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。2.3.2.链表的结点结构  ┌──┬──┐  │data│next│  └──┴──┘data域--存放结点值的数据域next域--存放结点的直接后继的地址(位置)的指针域(链域)注意:  ①链表通过每个结点的链域将线性表的n个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。