赞
踩
单链表的实现实验报告
篇一:数据结构单链表实验报告
一、 设计人员相关信息
1. 设计者姓名、学号和班号:12地信李晓婧 12012242983
2. 设计日期:2014.
3. 上机环境:VC++6.0
二、 程序设计相关信息
1. 实验题目:编写一个程序,实现单链表的各种基本运算(假设单链表的元素类型为char),并在此基础上设计一个程序,完成如下功能:
(1) 初始化单链表;
(2) 采用尾插法依次插入元素a,b,c,d,e;
(3) 输出单链表
(4) 输出单链表长度
(5) 判断单链表是否为空
(6) 输出单链表第3个元素
(7) 输出元素a的位置
(8) 在第4个元素位置上插入元素f
(9) 输出单链表
(10)删除第三个元素
(11)输出单链表
(12)释放单链表
2. 实验项目组成:
(1) 插入和删除节点操作
(2) 建立单链表
尾插法建表
(3) 线性表基本运算在单链表中的实现
初始化线性表
销毁线性表
判断线性表是否为空表
求线性表的长度
3. 实验项目的程序结构(程序中的函数调用关系图):
4. 实验项目包含的各个文件中的函数的功能描述:
? 尾插法建表CreateListR:将新节点插到当前链表的表尾上,为此必须增加一个尾指针
r,使其始终指向当前链表的尾节点。
? 初始化线性表InitList:该运算建立一个空的单链表,即创建一个头节点;
? 销毁线性表DestroyList:释放单链表占用的内存空间,即逐一释放全部节点的空间; ? 判断线性表是否为空表ListEmpty:若单链表没有数据节点,则返回真,否则返回假; ? 求线性表的长度ListLength:返回单链表中数据节点的个数;
? 输出线性表DispList:逐一扫描单链表的每个数据节点,并显示各节点的data域值;
? 求线性表中某个数据元素值GetElem:在单链表中从头开始找到第i个节点,若存在第
i个数据节点,则将其data域值赋给变量e;
? 按元素值查找LocateElem:在单链表中从头开始找第一个值域与e相等的节点,若存
在这样的节点,则返回逻辑序号,否则返回0;
? 插入数据元素ListInsert:先在单链表中找到第i1个节点*p,若存在这样的节点,将值
为e的节点*s插入到*p节点的后面;
? 删除数据元素ListDelete:先在单链表中找到第i1个节点*p,若存在这样的节点,且
也存在后继节点*q;删除*q节点,返回TRUE;否则返回FALSE表示参数i错误。
5. 算法描述或流程图:
篇二:单链表操作实验报告
线性表
一、实验目的
1. 了解线性表的逻辑结构特征,以及这种特性在计算机内的两种存储结构。
2. 掌握线性表的顺序存储结构的定义及其C语言实现。
3. 掌握线性表的链式村粗结构——单链表的定义及其C语言实现。
4. 掌握线性表在顺序存储结构即顺序表中的各种基本操作。
5. 掌握线性表在链式存储结构——单链表中的各种基本操作。
二、实验要求
1. 认真阅读和掌握本实验的程序。
2. 上机运行本程序。
3. 保存和打印出程序的运行结果,并结合程序进行分析。
4. 按照对顺序表和单链表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果
三、实验内容
请编写C程序,利用链式存储方式来实现线性表的创建、插入、删除和查找等操作。具体地说,就是要根据键盘输入的数据建立一个单链表,并输出该单链表;然后根据屏幕菜单的选择,可以进行数据的插入或删除,并在插入或删除数据后,再输出单链表;然后在屏幕菜单中选择0,即可结束程序的运行。
四、解题思路
本实验要求分别写出在带头结点的单链表中第i(从1开始计数)个位置之后插入元素、创建带头结点的单链表中删除第i个位置的元素、顺序输出单链表的内容等的算法。
五、程序清单
include单链表的实现实验报告)h>
include
include
typedef int ElemType;
typedef struct LNode
{ ElemType data;
struct LNode *next;
}LNode;
LNode *L
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。