- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构(
成 绩 评阅人
重庆邮电大学
课程设计实验报告
班级:1301405
姓名:陈毫
学号:2014213922
指导老师: 常光辉
课程名称:面向对象程序设计
实验时间:2015年10月20
实验地点:软件实验室一楼B132
一 实验名称
顺序表的存储与操作
二 实验目的
1.理解线性表的逻辑结构;
2.理解顺序表的存储结构特点,掌握顺序表的存储分配要点;
掌握顺序表的基本操作及实现,并能正确分析其时间复杂度
三 实验内容
定义顺序表的存储结构;
顺序表的基本操作
(1)初始化顺序表(无参和有参);
(2)求顺序表长度;
(3)按位置查找;
(4)按值查找;
(5)在位置 i 插入一个数据元素;
(6)删除位置 i 的数据元素;
(7)遍历顺序表;
(8)销毁顺序表。
四、参考代码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( )
{
length=0;
}
/*
*前置条件:顺序表不存在
*输 入:顺序表信息的数组形式 a[],顺序表长度 n
*功 能:将数组 a[]中元素建为长度为 n 的顺序表
*输 出:无
*后置条件:构建一个顺序表
*/
template class T
SeqListT:: SeqList(T a[], int n)
{
if (nMaxSize) throw 参数非法; for (int i=0; in; i++)
data[i]=a[i];
length=n;
}
/*
*前置条件:无
*输 入:无
*功 能:无
*输 出:无
*后置条件:无
*/
template class T SeqListT:: ~SeqList( )
{
}
/*
*前置条件:顺序表存在
*输 入:插入元素 x,插入位置 i
*功 能:将元素 x 插入到顺序表中位置 i 处
*输 出:无
*后置条件:顺序表插入新元素
*/
template class T
void SeqListT::Insert(int i, T x)
{
int j;
if (length=MaxSize) throw 上溢; if (i1 || ilength+1) throw 位置;
for (j=length; j=i; j--)
data[j]=data[j-1]; //注意第 j 个元素存在数组下标为 j-1 处 data[i-1]=x;
length++;
}
/*
*前置条件:顺序表存在
*输 入:要删除元素位置 i
*功 能:删除顺序表中位置为 i 的元素
*输 出:无
*后置条件:顺序表删除元素
*/
template class T
T SeqListT::Delete(i
您可能关注的文档
- 心理学考研-社会心理学资料-社会态度及其改变.docx
- 心理健康与心理调适-真题多选题与(部分)答案.doc
- 心脏病全系五行针法走位.doc
- 怎样理解文学类文本中的“重要句子”.doc
- 必修一模块综合检测(B).doc
- 戊戌变法和康有为的明治思想.docx
- 急性中毒应急救援预案.doc
- 成雪-数学课堂教学语言的有效性.doc
- 成都七中2016届高三二诊模拟考试文综政治.doc
- 括号匹配的报告.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)