1 / 8
文档名称:

数据结构(实验报告)实验一.doc

格式:doc   大小:120KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构(实验报告)实验一.doc

上传人:小博士 2019/1/10 文件大小:120 KB

下载得到文件列表

数据结构(实验报告)实验一.doc

文档介绍

文档介绍::..《数据结构》广类猞板告J专业:计算机科学与技术指导教师: 班级学号: 实验1、 题目:设计一个循环单链表,并设计一个主函数进行测试。2、 问题描述:设计循环单链表,使它包含5个基本操作及一个输出函数,并设计主函数进行测试。3、 基本要求:(1)循环单链表的操作,包括初始化,求数据元素个数,插入、删除、取数据元素。(2)设计一个输出函数,将数据元素依次输出。(3)设计一个主函数实际运行验证所设计循环单链表的正确性。4、 测试数据:向循环单链表中插入14(1-14)个数据元素,调用输出函数依次输出循环单链表中的数据元素,删除循环单链表中第6个元素,依次输出循环单链表中的数据元素,最后撤销循环单链表。5、 算法思想:初始化:初始化操作前,头指针参数head没有具体的地址值,在初始化操作后,头指针参数head才得到了具体的地址值,而这个地址值要返回给调用函数,所以,此时头指针参数head要设计成指针类型的指针。求当前数据元素个数:循环前,指针变量p指向头结点,计数变量size等于0;循环的结束条件为p-〉next!=head,循环中头指针p每次指向它的后继点时size加1;循环结束后返回数值size。插入数据元素:使指针p指向第i_l个结点,动态申请一个结点存储空间并由指针q指示,把数据元素x的值赋予新结点的数据元素域,最后修改新结点的next域指向i个结点,并修改i_l结点的指针域使之指向新结点P;循环条件由条件逻辑与组成,其中子条件p-〉next!=head保证指针所指向结点存在,子条件j〈i-l保证最终让指针P指向第i-1个结点。删除数据元素:使指针p指向第i-1个结点,然后让指针s指向i结点,并把数据元素的值赋予X,最后把第i个结点脱链,并动态释放结点的存储空间;循环条件有三个子条件逻辑与组成,其中子条件p->next!=head保证第i-1个结点存在,子条件p-〉next—〉!=head保证第i个结点存在,子条件j<i-l保证最终让指针P指向第i-1个结点。取数据元素:和删除函数基本相同,主要差别是,取数据元素函数的循环条件改为j〈i,并且不删除第i个结点。6、 模块划分:(1) 定义单链表结点的结构体。(2) 初始化操作函数。(3) 求当前数据元素个数函数。(4) 插入操作函数。(5) 删除操作函数。(6) 取元素操作函数。(7) 撤销操作函数。(8) 设计主函数进行测试。7、 数据结构:采用链式存储结构,结点由数据元素域和指针域组成,用指针把相互关联的结点连接起来,。8、 源程序:^include<>^include〈>#include<>typedefintDataType;typedefstructNode{DataTypedata;structNode*next;}SLNode;voidListlnitiate(SLNode林head) /*初始化*/{/*如果有内存空间,申请头结点空间并使头指针head指向头结点*/if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=*head; /*置链尾标记NULL*