1 / 8
文档名称:

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

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

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

分享

预览

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

上传人:63229029 2017/1/16 文件大小:99 KB

下载得到文件列表

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

文档介绍

文档介绍:《数据结构》( 实验报告) 专业: 计算机科学与技术指导教师: 班级学号: 姓名: 实验一 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-1 个结点, 动态申请一个结点存储空间并由指针 q 指示, 把数据元素 x 的值赋予新结点的数据元素域,最后修改新结点的 next 域指向 i 个结点,并修改 i-1 结点的指针域使之指向新结点 p ;循环条件由条件逻辑与组成,其中子条件 p->next!=head 保证指针所指向结点存在, 子条件 j<i-1 保证最终让指针 p 指向第 i-1 个结点。删除数据元素: 使指针 p 指向第 i-1 个结点, 然后让指针 s指向 i 结点,并把数据元素的值赋予 x ,最后把第 i 个结点脱链,并动态释放结点的存储空间; 循环条件有三个子条件逻辑与组成, 其中子条件 p->next!=head 保证第 i-1 个结点存在, 子条件 p->next->!=hea d 保证第 i 个结点存在, 子条件 j<i-1 保证最终让指针 p 指向第 i-1 个结点。取数据元素: 和删除函数基本相同, 主要差别是, 取数据元素函数的循环条件改为 j<i ,并且不删除第 i 个结点。 6 、模块划分: (1 )定义单链表结点的结构体。(2 )初始化操作函数。(3 )求当前数据元素个数函数。(4 )插入操作函数。(5 )删除操作函数。(6 )取元素操作函数。(7 )撤销操作函数。(8 )设计主函数进行测试。 7 、数据结构: 采用链式存储结构, 结点由数据元素域和指针域组成, 用指针把相互关联的结点连接起来,。 8 、源程序: #include <> #include <> #include <> typedef int DataType; typedef struct Node { DataType data; struct Node *next; } SLNode; void ListInitiate(SLNode **head) /* 初始化*/ { /* 如果有内存空间,申请