1 / 74
文档名称:

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

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

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

分享

预览

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

上传人:neryka98 2018/4/18 文件大小:1.13 MB

下载得到文件列表

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

相关文档

文档介绍

文档介绍:课程实验报告
课程名称: 数据结构
专业班级: 信息安全1302班
学号:
姓名:
报告日期: 2015年 5 月 13日
计算机科学与技术学院
目录
1 课程实验概述 1
2 实验一基于顺序结构的线性表实现 2
3 实验二基于链式结构的线性表实现 15
4 实验三基于二叉链表的二叉树实现 28
5 实验总结与评价 46
6 附录:源代码 47
1 课程实验概述

,进一步提高学生的编程能力;
;
,撰写规范的实验报告

,完全雷同者记0分;
,每个实验报告包括如下内容–问题描述,系统设计,系统实现,效率分析;
3. 《实验报告》和《源程序》,以班为单位提交光盘。
2 实验一基于顺序结构的线性表实现
问题描述
基于顺序存储结构,实现线性表的基本的,常见的运算:
(1)提供一个实现功能的演示系统;
(2)具体物理结构和数据元素类型自行选定;
(3)线性表数据可以使用磁盘文件永久保存
系统设计
线性动态分配存储结构
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef int status;
typedef int Elemtype;
typedef struct{
Elemtype *elem;
int length;
int listsize;
}SqList;
status InitList(SqList * L):构造一个空的线性表,申请存储元素空间,置表长为0;
status DestroyList(SqList *L):将已经存在的线性表销毁,线性表中的数据消失,存储空间被释放;
status ClearList(SqList L):将已经存在的线性表重置为空表,表长设为0;
status ListEmpty(SqList L):判定已经存在的线性表是否为空表,若是空表,返回TRUE,若不是空表,返回FALSE;
int ListLength(SqList L):返回线性表中的表长,即线性表中的length;
status GetElem(SqList L,int i,Elemtype *e):若输入的i小于1或是大于表长,则返回ERROR;否则找到第i个元素,用e返回第i个元素的值;
status LocatElem(SqList L,Elemtype e,status (* compare)(Elemtype ,Elemtype )):pare关系的数据元素的位序。若这样的数据元素不存在,则返回0;
status PriorElem(SqList L,Elemtype cur_e,Elemtype *pre_e):若cur_e是L的数据元素,并且不是第一个,则用pre_e返回它的前驱,否则操作失败,pre_e无定义;
status NextElem(SqList L,Elemtype cur_e,Elemtype *next_e):若cur_e是L中的数据元素,且不是最后一个,则用next_e返回它的后继,否则操作失败,next_e无定义;
status ListInsert(SqList * L,int i, Elemtype e):在已经存在的线性表L中第i个位置插入新的数据元素e,L的长度加1;
status ListDelete(SqList * L,int i,Elemtype e):删除已经存在的线性表L的第i个元素,并用e返回其值,L的长度减1;
status ListTrabverse(SqList L, void (* visit)(Elemtype e)):依次对L的每个数据元素调用函数visit(),一旦调用失败,则操作失败。
pare(Elemtype x, Elemtype y):比较x和y的值,若x==y,则返回1,否则返回0;
void display(Elemtype e):对数据输出;
系统实现
[0]=1;[1]=2;[2]=3;[3]=4;
首先选12遍历线性表
销毁线性表
然后遍历,销毁后显示线性表不存在
重新进入系统后选择3 清空线性表
然后遍历显示线性表为空
线性表为空
再次运行线性表非空
表长为4
选择6 第三个元素的值为3
输入查找第8个数的位置显示输入错误
选择7 查找2的位置