《数据结构课程实验报告.docxVIP

  • 35
  • 0
  • 约3.79万字
  • 约 10页
  • 2018-06-16 发布于浙江
  • 举报
《数据结构课程实验报告

课 程 实 验 报 告 课程名称: 数据结构 专业班级: 信息安全1302 学 号: 姓 名: 指导教师: 报告日期: 2015年5月6日 计算机科学与技术学院 目 录 1 课程实验概述 1 2 实验一 基于顺序结构的线性表实现 2 2.1 问题描述 2 2.2 系统设计 2 2.3 系统实现 2 2.4 效率分析 8 3 实验二 基于链式结构的线性表实现 10 3.1 问题描述 10 3.2 系统设计 10 3.3 系统实现 10 3.4效率分析 15 4 实验三 基于二叉链表的二叉树实现 16 4.1 问题描述 16 4.2 系统设计 16 4.3 系统实现 18 4.4 效率分析 34 5 实验总结与评价 36 附注,相关源代码: 38 6.1顺序结构线性表的实现: 38 6.2链式结构线性表的实现: 38 6.3二叉树的实现: 38 1 课程实验概述 实验概述 数据结构是一门理论性和实践性都很强的科目。说其理论性强,是因为在课上会讨论顺序表、树和图等等复杂的数据结构以及有关它们的基本操作方法,而这些东西都是十分抽象的。而说其实践性强,则是因为这些在课堂上所讨论的理论知识,最终要被我们运用到各种应用程序中,去实现各种不同的功能。而为了能熟练地使用这些知识,就需要有很好的使用经验,而这使用经验,就要求我们能自己亲手实现一遍这些数据结构,来亲身体验它们工作的方式。并且在上机实践的过程中,发现自己容易犯的错误,找出问题所在,避免以后使用这些知识的时候再次犯同样的错误。这样的动手能力和经验都是十分重要的。因此,说这门课实践性特别强。 而为了满足课程对实践性的要求,我们就要进行这两次上机实验,来实现顺序表和二叉树这两种数据结构以及与其相关的各种操作。相信我们一定会在上机实验的过程中加深对这两种数据结构的理解,收获到在课堂上无法获得的宝贵体验,提高我们的程序编写能力和程序差错能力,同时也体会到数据结构这门课程的魅力。 实验内容 1. 顺序表综合实验 2. 链表综合实验 3. 二叉树综合实验 2 实验一 基于顺序结构的线性表实现 2.1 问题描述 基于顺序存储结构,实现线性表 ADT,具有12种基本运算。 要求: ⑴ 提供一个实现功能的演示系统 ⑵ 具体物理结构和数据元素类型自行选定 ⑶ 线性表数据可以使用磁盘文件永久保存 2.2 系统设计 在本系统中,先创建一个结构体来作为线性表的表头,在表头中含有线性表的长度,线性表的大小以及指向线性表数组的头指针等信息。本系统所实现的对线性表的所有操作都通过这个表头来实现。 2.2.1 编译环境 操作系统:windows 8.1 64位 编程语言:C语言,编译选项添加--std=c99 编译器:CodeBlocks自带的编译器 2.2.2 功能描述 基本功能有:从文件初始化线性表、销毁线性表、将线性表置空、判断线性表是否为空、求线性表的表长、获取线性表中特定元素值、定位元素在线性表中的位置、返回线性表中某元素的前驱、返回线性表中某元素的后继、在特定位置插入新的元素、删除线性表中特定元素、遍历线性表、将线性表内容保存到文件。 2.3 系统实现 2.3.1 相关的类型及宏定义 #define OK 1 //函数执行成功则返回OK #define FAIL 0 //函数执行失败则返回FAIL #define LIST_INIT_SIZE 300 //线性表的容量 #define EMPTY 1 //线性表为空时返回EMPTY #define NON_EMPTY 0 //线性表不为空时返回NON_EMPTY char * FilePath = Data.dat; //存储链表数据的文件名 typedef int status; //函数的执行状态的返回值 typedef struct{ int item1; }Elemtype; //线性表中数据域的定义 typedef struct{ Elemtype * elem; int length; //线性表长度 int listsize; //线性表所能存储元素的最大值 }SqList; //线性表的表头 2.3.2 相关函

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档