单链表实验报告及程序
- 格式:doc
- 大小:1.44 MB
- 文档页数:17
兰州财经大学
班级:
姓名:
学号:
指导老师: 数据结构与算法实验课程---单链表 目录
一.前言........................................................................................................................................... 2
1.1实验目的 ............................................................................................................................ 2
1.2 实验内容 ........................................................................................................................... 2
1.3 实验环境 ........................................................................................................................... 2
二.需求分析 ................................................................................................................................... 2
2.1线性表 ................................................................................................................................ 2
2.2抽象数据类型线性表定义 ................................................................................................ 2
2.3 线性表的链式表示 ........................................................................................................... 4
2.3.1链接存储方法 .......................................................................................................... 4
2.3.2链表的结点结构 ...................................................................................................... 4
2.3.3头指针head和终端结点指针域的表示 ................................................................ 4
2.3.4单链表类型描述 ...................................................................................................... 5
2.3.5 指针变量和结点变量 .............................................................................................. 5
三.编程实现 ................................................................................................................................... 6
3.1主要函数代码 .................................................................................................................... 6
3.1.1.主程序 ................................................................................................................... 6
3.2.单链表的建立、插入、删除等操作。 ........................................................................ 10
四.测试调试与结果分析 ................................................................................................................ 12
4.1正常测试数据及运行结果 ............................................................................................... 12
五.收获及体会 ............................................................................................................................. 16
六.参考文献 .................................................................................................................................... 16 一.前言
1.1实验目的
掌握单链表的基本操作,插入、删除、查找等算法的实现。
1.2 实验内容
(1)初始化单链表。
(2)在单链表中插入一个新结点。
(3)删除单链表中的某一个结点。
(4)在单链表中查找某结点并返回其位置。
(5)打印输出La中的结点元素值
1.3 实验环境
1、硬件:PC/4G内存/512G硬盘/100M /NIC
2、软件:
操作系统Windows 7
Microsoft Visual Studio 6.0 集成开发环境
VC++6.0
二.需求分析
2.1线性表
1、线性表概念:n个数据元素组成的有限序列。表示为(a1,a2,…,ai,ai+1,…,an)。
2、逻辑特征:
(1)1
(2)元素同构,且不能出现缺项。
2.2抽象数据类型线性表定义
通常采用抽象数据类型研究数据结构。线性表查询数据类型如下:
ADT List {
数据对象:D={ ai | ai ∈ElemSet,i=1,2,...,n, n≥0 }
数据关系:R1={ |ai-1 ,ai∈D, i=2,...,n }
基本操作:
InitList( &L )
操作结果:构造一个空的线性表L。
DestroyList( &L ) 初始条件:线性表L已存在。
操作结果:销毁线性表L。
ListEmpty( L )
初始条件:线性表L已存在。
操作结果:若L为空表,则返回TRUE,否则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 返回它的前驱,否则操作失败,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的值。
ListInsert( &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。
} ADT List