- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据与算法基础(1)(数据结构)
实验指导书
重庆邮电大学软件工程学院
2016-2017学年第一学期
实验目的与要求
一、实验目的
数据结构是软件工程学科中一门非常重要的专业基础课程。当用计算机来解决实际问题时,就要涉及到数据的存储表示及数据的处理,而数据存储表示及数据处理正是数据结构课程的主要研究对象,通过这两方面内容的学习,为后续课程,特别是为软件方面的课程打下厚实的知识基础,同时也提供了必要的技能训练。因此,数据结构在软件工程学科及相关学科专业的课程体系中具有极其重要的作用。
本课程的任务是:通过实践,学生对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会;能够快速确定数据的逻辑结构、并根据数据处理的类型和频度选择最佳的存储结构和算法组合。
二、实验要求
1.准备好上机所需要的C++程序,以提高上机效率。对程序中自己有疑问的地方应作记号,以便在上机时给予注意或获取教师指导。不得抄袭他人程序。
2.上机输入并调试/运行所编写程序。
3.上机结束后,提交实验报告,实验报告应包括但不限于以下内容:
(1)题目;
(2)实验目的;
(3)主要数据结构描述;
(4)算法的基本思想描述;
(5)算法时间复杂度分析;
(6)运行的结果截图;
(7)实验体会和收获;
(8)程序清单。
实验一 顺序表的存储与操作
一、实验目的
1.理解线性表的逻辑结构;
2.理解顺序表的存储结构特点,掌握顺序表的存储分配要点;
3.掌握顺序表的基本操作及实现,并能正确分析其时间复杂度。
二、实验内容
1. 定义顺序表的存储结构;
2. 顺序表的基本操作
(1)初始化顺序表(无参和有参);
(2)求顺序表长度;
(3)按位置查找;
(4)按值查找;
(5)在位置i插入一个数据元素;
(6)删除位置i的数据元素;
(7)遍历顺序表;
(8)销毁顺序表。
三、算法思想和时间复杂度
当我们要在线性表的顺序存储结构上的第i个位置上插入一个元素时,必须先将线性表的第i个元素之后的所有元素依次后移一个位置,以便腾空一个位置,再把新元素插入到该位置。若要删除第i个元素时,也必须把第i个元素之后的所有元素前移一个位置。
四、参考代码
1. 顺序表的存储结构和操作接口
SeqList.h 声明类SeqList,文件名为SeqList.h
#ifndef SeqList_H
#define SeqList_H
const int MaxSize=100; //100只是示例性的数据,可以根据实际问题具体定义
template class T //定义模板类SeqList
class SeqList
{
public:
SeqList( ); //无参构造函数
SeqList(T a[], int n); //有参构造函数
~SeqList(); //析构函数为空
int Length(); //求线性表的长度
T Get(int i); //按位查找,取线性表的第i个元素
int Locate(T x); //按值查找,求线性表中值为x的元素序号
void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素
T Delete(int i); //删除线性表的第i个元素
void PrintList(); //遍历线性表,按序号依次输出各元素
private:
T data[MaxSize]; //存放数据元素的数组
int length; //线性表的长度
};
#endif
顺序表操作的实现
//SeqList.cpp
#include SeqList.h
/*
*前置条件:顺序表不存在
*输 入:无
*功 能:构建一个顺序表
*输 出:无
*后置条件:构建一个顺序表
*/
template class T
SeqListT:: SeqList( )
{
}
/*
*前置条件:顺序表不存在
*输 入:顺序表信息的数组形式a[],顺序表长度n
*功 能:将数组a[]中元素建为长度为n的顺序表
*输 出:无
*后置条件:构建一个顺序表
*/
template class T
SeqListT:: SeqList(T a[], int n)
{
}
/*
*前置条件:无
*输 入:无
*功 能:无
*输 出:无
*后
您可能关注的文档
- 当当与亚马逊站内搜索比较.docx
- 微模块化机房方案.doc
- 德州仪器(TI)_芯片的命名规则.docx
- 心理学考研-社会心理学资料-社会态度及其改变.docx
- 心理健康与心理调适-真题多选题与(部分)答案.doc
- 心脏病全系五行针法走位.doc
- 怎样理解文学类文本中的“重要句子”.doc
- 必修一模块综合检测(B).doc
- 戊戌变法和康有为的明治思想.docx
- 急性中毒应急救援预案.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)