1 / 61
文档名称:

《数据结构》课程实验报告 (22).doc

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

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

分享

预览

《数据结构》课程实验报告 (22).doc

上传人:ocxuty74 2018/1/12 文件大小:1.08 MB

下载得到文件列表

《数据结构》课程实验报告 (22).doc

相关文档

文档介绍

文档介绍:课程实验报告
课程名称: 数据结构
专业班级: 信息安全1302
学号:
姓名:
指导教师:
报告日期:
计算机科学与技术学院
目录
1 课程实验概述 1
2 实验一基于顺序结构的线性表实现
问题描述 2
系统设计 2
系统实现 2
效率分析 14
3 实验二基于链式结构的线性表实现
问题描述 16
系统设计 16
系统实现 16
效率分析 28
4 实验三基于二叉链表的二叉树实现
问题描述 30
系统设计 30
系统实现 30
效率分析 57
5 实验总结与评价 60
1 课程实验概述
本门课程作为C语言与程序设计的延续与某一方面的扩展,重点在于研究与数据有关的操作,如数据类型的定义,数据之间关系的选择,对数据元素访问操作,以及数据在计算机中的存储形式,有效地帮助我们巩固了C语言的知识,为程序设计打下了重要的基础。源于C语言,而不仅仅限于C语言中,这种思想在学****计算机科学技术以及软件工程是至关重要的,对于一个程序员来说,数据结构加上算法即是一个程序,它们二者相辅相成,共同构建出完整简洁而又功能强大的程序。
因此,上机调试也是十分重要的,在上机的过程中,将想象现实化,在实际情况中去实现各种数据结构的形式及功能,并运用不同的方法和数据进行调试,测试一个程序的健壮性和可执行性,锻炼大家写代码的能力和效率,复****已经学****过的语言,具有深远的影响。
本学期有两次上机机会,分别实现线性表和二叉树的数据结构,线性表应该是一种最为基本的数据结构,这一点在C语言中我们就已经有了简单的接触,而在本门课程中,我们加大了讨论的宽度和加深了讨论的深度,使得线性表的应用更为灵活,使得它更多强大的功能可以在写程序中为我们所用。
如果说线性表是“一对一形式”的代表数据结构,那么树就应该是“一对多形式”的典型结构了,由于在离散数学中已经初步学****过了树的概念,在本门课程中,我们从树的理论走进树在计算机数据系统中的应用。
2 实验一基于顺序结构的线性表实现
问题描述
对于顺序结构的线性表,完成线性表的建立,销毁,置空,判断是否为空,求出表长,取得表中特定元素,在表中找到某给定元素的位置,求出某元素的前驱、后继,在表中插入、删除元素以及完成对线性表的遍历等操作。
系统设计
:Codeblocks ;C语言
:
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct{ //顺序表(顺序结构)的定义
ElemType * elem;
int length;
int listsize;
}SqList;
:
status IntiaList(SqList * L);
status DestroyList(SqList * L);
status ClearList(SqList *L);
status ListEmpty(SqList L);
int ListLength(SqList L);
status GetElem(SqList L,int i,ElemType * e);
status LocateElem(SqList L,ElemType e); //简化过
status PriorElem(SqList L,ElemType cur,ElemType * pre_e);
status NextElem(SqList L,ElemType cur,ElemType * next_e);
status ListInsert(SqList * L,int i,ElemType e);
status ListDelete(SqList * L,int i,ElemType * e);
status ListTrabverse(SqList L); //简化过
:用以一个switch条件判断语句,依次实现这十二个函数的功能。
系统实现
:
:
status IntiaList(SqList * L){
L->elem = (ElemType *)malloc( LIST_INIT_SIZE * sizeof (ElemType));
if(!L->elem) exit(OVERFLOW);
L->length=0;
L->lis