数据结构单链表实验报告.docx
《数据结构单链表实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构单链表实验报告.docx(9页珍藏版)》请在冰豆网上搜索。
数据结构单链表实验报告
一、设计人员相关信息
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:
先在单链表中找到第i-1个节点*p,若存在这样的节点,将值为e的节点*s插入到*p节点的后面;
●删除数据元素ListDelete:
先在单链表中找到第i-1个节点*p,若存在这样的节点,且也存在后继节点*q;删除*q节点,返回TRUE;否则返回FALSE表示参数i错误。
5.算法描述或流程图:
6.实验数据和实验结果:
7.出现的问题及解决方法:
问题1:
解决方法:
问题2:
解决方法:
voidDispList(LinkList*L)/*输出表*/
{
LinkList*p=L->next;//p指向开始节点
while(p!
=NULL)//p不为NULL,输出*p节点的data域
{printf("%c",p->data);将%d改为%c
p=p->next;//p移向下一个节点
}
printf("\n");
}
三、程序盘
提交的程序盘应包含全部的源程序清单和可执行文件。