数据结构课程实验报告(7)
- 格式:doc
- 大小:97.00 KB
- 文档页数:27
课程实验报告课程名称:数据结构
专业班级:信安
学号:
姓名:
指导教师:
报告日期: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。