数据结构课程实验报告(7)

  • 格式:doc
  • 大小:97.00 KB
  • 文档页数:27

下载文档原格式

  / 27
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程实验报告课程名称:数据结构

专业班级:信安

学号:

姓名:

指导教师:

报告日期:2015.4.5

计算机科学与技术学院

目录

1 课程实验概述 (1)

2 实验一基于顺序结构的线性表实现

2.1 问题描述......................................................................... 错误!未定义书签。

2.2 系统设计......................................................................... 错误!未定义书签。

2.3 系统实现......................................................................... 错误!未定义书签。

2.4 效率分析......................................................................... 错误!未定义书签。

3 实验二基于链式结构的线性表实现

3.1 问题描述......................................................................... 错误!未定义书签。

3.2 系统设计......................................................................... 错误!未定义书签。

3.3 系统实现......................................................................... 错误!未定义书签。

3.4 效率分析......................................................................... 错误!未定义书签。

4 实验三基于二叉链表的二叉树实现

4.1 问题描述......................................................................... 错误!未定义书签。

4.2 系统设计......................................................................... 错误!未定义书签。

4.3 系统实现......................................................................... 错误!未定义书签。

4.4 效率分析......................................................................... 错误!未定义书签。

5 实验总结与评价........................................................................ 错误!未定义书签。

1 课程实验概述

上机实验是对学生的一种全面综合训练,是与课堂听课、自学和练习相辅相成的必不可少的一个教学环节。实验目的着眼于原理与应用的结合,使学生学会如何把书上的知识用语解决实际问题,能够理解和运用常用的数据结构,如线性表、栈、队列、树、图、查找表等,并在此基础上建立相应的算法;通过上机实验使学生了解算法和程序的区别,培养学生把算法转换为程序的能力,提高学生解决实际问题的能力;学会分析研究计算机加工的数据结构的特性,以便为应用涉及的数据选择适当的逻辑结构、存储结构及其相应的算法,并初步掌握算法的时间分析和空间分析的技术。

2 实验一基于顺序结构的线性表实现

2.1 问题描述

编写一个程序,实现顺序表的各种基本运算,并在此基础上完成以下功能:

1) 初始化顺序表;

2) 释放顺序表;

3) 判断顺序表L是否为空;

4) 输出顺序表L的长度;

5) 输出顺序表L的第i个元素;

6) 输出元素e的位置;

7) 输出元素e的前一个元素;

8) 输出元素e的后一个元素;

9) 在第i个元素位置上插入f元素;

10) 删除L的第i个元素;

11) 输出顺序表L;

12) 保存顺序表L的数据。

2.2 系统设计

1、数据类型

顺序表:typedef struct

{

ElemType * elem; //线性表首地址

int length; //线性表当前长度

int listsize; //线性表最大长度

}SqList;

数据类型:int(可以在头文件中更改数据类型)

输入形式:文件读取、键盘输入

输入范围:-2^15~2^16

2、函数返回状态

判断为真:TRUE 0

判断为假:FALSE -1

函数正确执行:OK -2

函数执行错误:ERROR -3

元素不存在:NOTEXIST -4

内存分配溢出:OVERFLOW -5

3、函数设计

InitList(&L)

操作前提:L是一个未初始化的线性表。

操作结果:将L初始化为一个空的线性表。

DestroyList(&L)

操作前提:线性表L已存在。

操作结果:销毁线性表L。

ListEmpty(L)

操作前提:线性表L已存在。

操作结果:若L为空表,则返回TURE,否则返回FALSE。ListLength(L)

操作前提:线性表L已存在。

操作结果:返回L中数据元素个数。

GetElem(L, i,&e)

操作前提:线性表L已存在,1≤i≤ListLength(L)。

操作结果:用e返回L中第i个元素的值。

LocateElem (L,e)

操作前提:线性表L已存在。

操作结果:返回L中第一个e的位序。

若这样的数据元素不存在,则返回值为0。

PriorElem (L,e,&proi)

操作前提:线性表L已存在。

操作结果:返回L中第一个e的前一个数据元素。

若这样的数据元素不存在,则返回值为0。