循环单链表的实验报告

上传人:橙** 文档编号:333358651 上传时间:2022-09-01 格式:PDF 页数:7 大小:44.05KB
返回 下载 相关 举报
循环单链表的实验报告_第1页
第1页 / 共7页
循环单链表的实验报告_第2页
第2页 / 共7页
循环单链表的实验报告_第3页
第3页 / 共7页
循环单链表的实验报告_第4页
第4页 / 共7页
循环单链表的实验报告_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《循环单链表的实验报告》由会员分享,可在线阅读,更多相关《循环单链表的实验报告(7页珍藏版)》请在金锄头文库上搜索。

1、数据结构实验报告1、实验名称:设计循环单链表2、实验日期:2011-3-4 3、基本要求:1)循环单链表的操作,包括初始化、求数据元素个数、插入、删除、取数据元素;2)设计一个测试主函数实际运行验证所设计循环单链表的正确性。4、测试数据:依次输入 1,2,3,4,5,6,7,8,9,10,删除 5,再依次输出数据元素。5、算法思想或算法步骤:主函数主要是在带头结点的循环单链表中删除第i 个结点,其主要思想是在循环单链表中寻找到第i-1 个结点并由指针 p 指示,然后让指针 s 指向 ai结点,并把数据元素 ai的值赋给 x,最后把 ai结点脱链,并动态释放ai结点的存储空间。6、模块划分:1)

2、头文件 LinList.h。头文件 LinList.h中包括:结点结构体定义、初始化操作、求当前数据个数、插入一个结点操作、删除一个结点操作以及取一个数据元素操作;2)实现文件 xhdlb.cpp。包含主函数void main(void),其功能是测试所设计的循环单链表的正确性。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -7、数据结构:链表中的结点的结构体定义如下:typedef struct Node DataType data;struct Node*next;SLNode;8、源程序:源 程 序 存放 在 两 个文 件 中,即 头 文 件 LinList.h和

3、 实 现文 件xhdlb.cpp。/头文件 LinList.h typedef struct Node DataType data;struct Node*next;SLNode;void ListInitiate(SLNode*head)/初始化*head=(SLNode*)malloc(sizeof(SLNode);/申请头结点,由 head指示其地址(*head)-next=*head;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -int ListLength(SLNode*head)SLNode*p=head;/p指向头指针int size=0;/size初始

4、值为 0 while(p-next!=head)/循环计数 p=p-next;size+;return size;int ListInsert(SLNode*head,int i,DataType x)/在带头结点的循环单链表head 的第 i(0=inext!=head&jnext;j+;if(j!=i-1)printf(插入位置参数错!);return 0;q=(SLNode*)malloc(sizeof(SLNode);/生成新结点q-data=x;/新结点数据域赋值q-next=p-next;p-next=q;return 1;int ListDelete(SLNode*head,in

5、t i,DataType*x)/删除带头结点循环单链表head 的第 i(0=inext!=head&p-next-next!=NULL&jnext;j+;if(j!=i-1)printf(删除位置参数错!);return 0;s=p-next;/指针 s 指向 ai结点*x=s-data;/把指针 s 所指结点的数据域值赋予x p-next=p-next-next;/删除 free(s);/释放指针 s 所指结点的内存空间return 1;int ListGet(SLNode*head,int i,DataType*x)SLNode*p;int j;p=head;名师资料总结-精品资料欢迎下

6、载-名师精心整理-第 5 页,共 7 页 -j=-1;while(p-next!=head&jnext;j+;if(j!=i)printf(取元素位置参数错!);return 0;*x=p-data;return 1;/实现文件 xhdlb.cpp#include /包含 printf()函数#include /包含 malloc()函数typedef int DataType;/定义 DataTyoe 为 int#includeLinList.h /包含 LinList.h头文件void main(void)SLNode*head;/定义头指针变量名师资料总结-精品资料欢迎下载-名师精心整理

7、-第 6 页,共 7 页 -int i,x;ListInitiate(&head);/初始化for(i=0;i10;i+)/插入 10 个数据元素 ListInsert(head,i,i+1);/删除数据元素 5 ListDelete(head,4,&x);for(i=0;iListLength(head);i+)/显示当前数据元素 ListGet(head,i,&x);/取元素printf(%d,x);/显示 9、测试情况:1)程序运行输出为:1 2 3 4 6 7 8 9 10 2)测试结果分析:程序运行结果和预测的完全相同,说明所设计的循环单链表是正确的。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号