1、数据结构单链表实验报告一、 设计人员相关信息1. 设计者姓名、学号和班号:12地信李晓婧 120122429832. 设计日期: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) 输出
2、单链表(12) 释放单链表2. 实验项目组成:(1) 插入和删除节点操作(2) 建立单链表尾插法建表(3) 线性表基本运算在单链表中的实现初始化线性表销毁线性表判断线性表是否为空表求线性表的长度3. 实验项目的程序结构(程序中的函数调用关系图):4. 实验项目包含的各个文件中的函数的功能描述: 尾插法建表CreateListR:将新节点插到当前链表的表尾上,为此必须增加一个尾指针r,使其始终指向当前链表的尾节点。 初始化线性表InitList:该运算建立一个空的单链表,即创建一个头节点; 销毁线性表DestroyList:释放单链表占用的内存空间,即逐一释放全部节点的空间; 判断线性表是否为空
3、表ListEmpty:若单链表没有数据节点,则返回真,否则返回假; 求线性表的长度ListLength:返回单链表中数据节点的个数; 输出线性表DispList:逐一扫描单链表的每个数据节点,并显示各节点的data域值; 求线性表中某个数据元素值GetElem:在单链表中从头开始找到第i个节点,若存在第i个数据节点,则将其data域值赋给变量e; 按元素值查找LocateElem:在单链表中从头开始找第一个值域与e相等的节点,若存在这样的节点,则返回逻辑序号,否则返回0; 插入数据元素ListInsert:先在单链表中找到第i-1个节点*p,若存在这样的节点,将值为e的节点*s插入到*p节点的
4、后面; 删除数据元素ListDelete:先在单链表中找到第i-1个节点*p,若存在这样的节点,且也存在后继节点*q;删除*q节点,返回TRUE;否则返回FALSE表示参数i错误。5. 算法描述或流程图:6. 实验数据和实验结果:7. 出现的问题及解决方法:问题1:解决方法:问题2:解决方法:void DispList(LinkList*L)/*输出表*/LinkList*p=L-next; /p指向开始节点while(p!=NULL) /p不为NULL,输出*p节点的data域printf(%c,p-data); 将%d改为%cp=p-next; /p移向下一个节点printf(n);三、 程序盘提交的程序盘应包含全部的源程序清单和可执行文件。