欢迎来到天天文库
浏览记录
ID:31021452
大小:82.00 KB
页数:7页
时间:2019-01-05
《顺序表实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、江西理工大学软件学院《数据结构C++》课程设计报告2013—2014学年第一学期课程名称数据结构C++设计题目顺序表的实现专业班级PPPPPPPPPPPPPPP姓名学号―PPPPPPPP扌旨导教师2013年9月11日实验题日:顺序表的实现一、实验目的1、掌握线性表的顺序存储结构;2、验证顺序表及其基本操作的实现;3、理解算法与程序的关系,能够将顺序表算法转换为对应的程序。二、实验内容1、建立含有若干个元素的顺序表;2、对已建立的顺序表实现插入、删除、查找等基本操作。三、实现提示定义顺序表的实验类型一一顺序表类SeqList,包括题目要求的插入、删除、查找等基本操作,为便于查看操作结果,设计
2、一个输出函数依次输出顺序表的元素。顺序表类SeqList的定义以及基本操作的算法请参照主教材2.2节。简单起见,木实验假定线性表的数据元素为int型,要求学生:1、将实验程序调试通过后,用模板类改写;2、加入求线性表的长度等基本操作;3、重新给定测试数据,验证抛出异常机制。四、实验程序在VC++编程环境下创建一个工程“顺序表验证实验”,在该工程中新建一个头文件SeqList.h,该头文件中包含顺序表类SeqList的定义.算法设计:头文件SeqList.h#ifndefSEQLIST.H#defineSEQLIST.HconstintMAXSIZE=100;template3、taTypoclassSeqList{private:DataTypedata[MAXSIZE];intlength;public:SeqList();SeqList(DataTypea[],intn);voidprintList();intLength();DataTypeGet(inti);intLocate(DataTypex);voidInsert(inti,DataTypex);};#endif类屮函数实现的源文件SeqListcpp#includeusingnamespacestd;#include"seqList.hutemplate4、ypoSeqList::SeqList(){length=0;}template::SeqList(DataTypea[],intn){for(inti=0;ivoidSeqList::printList(){for(inti=0;iintSeqList<5、DataType>::Length(){returnlength;}templateDataTypeSeqList::Get(inti){if(i>=1&&i<=length)returndata[i-1];elsethrow“输入不合法”;templateintSeqList::Locate(DataTypex){for(inti=0;ivoidSeq6、List::Insert(inti,DataTypex){if(length>=MAXSIZE)throw”表满,不能插入”;if(i<17、8、i>length+1)throw”插入位置不合理”;for(intj=length;j>=i;j—){datafjl=data[j・1];datafi・1]=x;length=length+1;}包含mani函数的源文件SeqList_main.cpp#includeusingnamespacestd;#include”seqList.cpp”intmain(){intaf5]={1,4,3,2,5};SeqL9、istsq(a,5);sq.printList();cout«H线性表的长度为:"«sq.Length()«endl;try{cout«"第8个元素是:n«sq.Get(8)«endl;}catch(char*s){cout«s«endl;cout«n10位于第n«sq.Locate(l0)«n个元素H«endl;try{sq.Insert(4,9);}catch(char*s){cout«s«endl;}sq
3、taTypoclassSeqList{private:DataTypedata[MAXSIZE];intlength;public:SeqList();SeqList(DataTypea[],intn);voidprintList();intLength();DataTypeGet(inti);intLocate(DataTypex);voidInsert(inti,DataTypex);};#endif类屮函数实现的源文件SeqListcpp#includeusingnamespacestd;#include"seqList.hutemplate4、ypoSeqList::SeqList(){length=0;}template::SeqList(DataTypea[],intn){for(inti=0;ivoidSeqList::printList(){for(inti=0;iintSeqList<5、DataType>::Length(){returnlength;}templateDataTypeSeqList::Get(inti){if(i>=1&&i<=length)returndata[i-1];elsethrow“输入不合法”;templateintSeqList::Locate(DataTypex){for(inti=0;ivoidSeq6、List::Insert(inti,DataTypex){if(length>=MAXSIZE)throw”表满,不能插入”;if(i<17、8、i>length+1)throw”插入位置不合理”;for(intj=length;j>=i;j—){datafjl=data[j・1];datafi・1]=x;length=length+1;}包含mani函数的源文件SeqList_main.cpp#includeusingnamespacestd;#include”seqList.cpp”intmain(){intaf5]={1,4,3,2,5};SeqL9、istsq(a,5);sq.printList();cout«H线性表的长度为:"«sq.Length()«endl;try{cout«"第8个元素是:n«sq.Get(8)«endl;}catch(char*s){cout«s«endl;cout«n10位于第n«sq.Locate(l0)«n个元素H«endl;try{sq.Insert(4,9);}catch(char*s){cout«s«endl;}sq
4、ypoSeqList::SeqList(){length=0;}template::SeqList(DataTypea[],intn){for(inti=0;ivoidSeqList::printList(){for(inti=0;iintSeqList<
5、DataType>::Length(){returnlength;}templateDataTypeSeqList::Get(inti){if(i>=1&&i<=length)returndata[i-1];elsethrow“输入不合法”;templateintSeqList::Locate(DataTypex){for(inti=0;ivoidSeq
6、List::Insert(inti,DataTypex){if(length>=MAXSIZE)throw”表满,不能插入”;if(i<1
7、
8、i>length+1)throw”插入位置不合理”;for(intj=length;j>=i;j—){datafjl=data[j・1];datafi・1]=x;length=length+1;}包含mani函数的源文件SeqList_main.cpp#includeusingnamespacestd;#include”seqList.cpp”intmain(){intaf5]={1,4,3,2,5};SeqL
9、istsq(a,5);sq.printList();cout«H线性表的长度为:"«sq.Length()«endl;try{cout«"第8个元素是:n«sq.Get(8)«endl;}catch(char*s){cout«s«endl;cout«n10位于第n«sq.Locate(l0)«n个元素H«endl;try{sq.Insert(4,9);}catch(char*s){cout«s«endl;}sq
此文档下载收益归作者所有