数据结构实验报告(实验)_第1页
数据结构实验报告(实验)_第2页
数据结构实验报告(实验)_第3页
数据结构实验报告(实验)_第4页
数据结构实验报告(实验)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据构造实验报告(实验)数据构造实验报告(实验)19/19数据构造实验报告(实验)优选文档深圳大学实验报告课程名称:数据构造实验与课程设计实验项目名称:实验一:序次表的应用学院:计算机与软件学院专业:指导教师:蔡平报告人:文成学号:2011150259班级:5实验时间:2012-9-17实验报告提交时间:2012-9-24教务部制.优选文档一、实验目的与要求:目的:1.掌握线性表的基根源理2.掌握线性表地基本构造3.掌握线性表地创办、插入、删除、查找的实现方法要求:1.熟悉C+语言编程2.熟练使用C+语言实现线性表地创办、插入、删除、查找的实现方法二、实验内容:ProblemA:数据构造实验1

2、序次表例程Description实现序次表的创办、插入、删除、查找Input第一行输入序次表的实质长度n第二行输入n个数据第三行输入要插入的新数据和插入地址第四行输入要删除的地址第五行输入要查找的地址Output第一行输出创办后,序次表内的全部数据,数据之间用空格分开第二行输出执行插入操作后,序次表内的全部数据,数据之间用空格分开第三行输出执行删除操作后,序次表内的全部数据,数据之间用空格分开第四行输出指定地址的数据SampleInput63SampleOutput22.优选文档HINT第i个地址是指从首个元素开始数起的第i个地址,对应数组内下标为i-1的地址ProblemB:数据构造实验1序

3、次表的数据交换Description实现序次表内的元素交换操作Input第一行输入n表示序次表包含的n个数据第二行输入n个数据,数据是小于100的正整数第三行输入两个参数,表示要交换的两个地址第四行输入两个参数,表示要交换的两个地址Output第一行输出创办后,序次表内的全部数据,数据之间用空格分开第二行输出执行第一次交换操作后,序次表内的全部数据,数据之间用空格分开第三行输出执行第二次交换操作后,序次表内的全部数据,数据之间用空格分开注意加入交换地址的合法性检查,若是发现地址不合法,输出error。SampleInput5112233445541SampleOutput11223344551

4、144332255errorHINT本题执行两次交换操作,注意写好输入接口。.优选文档ProblemC:数据构造实验1序次表的合并Description假定两个序次表的数据已经依照从小到大的序次排列,实现两个序次表的合并Input第一行输入n表示序次表A包含的n个数据第二行输入n个数据,数据是小于100的正整数第三行输入m表示序次表B包含的n个数据第二行输入m个数据,数据是小于100的正整数Output输出合并后的序次表内的全部数据,数据之间用空格分开SampleInput3113355422446688SampleOutput问题D:数据构造实验1序次表的循环移位题目描述序次表的移位是循环移

5、位,比方序次表:1,2,3,4,5,6。若是左移1位,即本来的头元素搬动到尾端,其他元素向左移1位,变成2,3,4,5,6,1。同理,若是右移1位,即本来的尾元素搬动到头,其他元素向右移1位,变成6,1,2,3,4,5。以下是移位的多个例子:原数据:1,2,3,4,5,6左移3位:4,5,6,1,2,3,与原数据比较右移4位:3,4,5,6,1,2,与原数据比较请编写程序实现序次表的循环移位操作.优选文档输入第一行输入n表示序次表包含的n个数据第二行输入n个数据,数据是小于100的正整数第三行输入搬动方向和搬动的位数,左移方向为0,右移方向为1第三行输入搬动方向和搬动的位数,左移方向为0,右移

6、方向为1输出第一行输出创办后,序次表内的全部数据,数据之间用空格分开第二行输出执行移位操作后,序次表内的全部数据,数据之间用空格分开第三行输出执行移位操作后,序次表内的全部数据,数据之间用空格分开若是发现输入的搬动方向或位数不合法,不执行移位操作,输出error样例输入5112233445524样例输出112233445533445511224455112233三、实验步骤与过程:思路:1.序次表类定义2.序次表的创办、插入、删除、查找等功能的实现3.序次表的测试运行源代码:#includeusingnamespacestd;classList.优选文档private:int*elem;/数组

7、元素intlistsize;/序次表最大长度intlength;/序次表当前长度public:List(intsize);/构造函数List();/析构函数intListLength();/获取序次表的实质长度intListInsert(inti,inte);/插入一个元素intListDelete(inti);/删除一个元素,返回删除的元素intGetElem(inti);/获取一个元素,返回元素值;List:List(intsize)/构造函数listsize=size;length=0;elem=newintlistsize;List:List()/析构函数deleteelem;/回收空

8、间intList:ListLength()/获取序次表的实质长度returnlength;intList:ListInsert(inti,inte)/插入一个元素if(length=listsize)return0;/序次表已满if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj-1;/地址i后边的元素全部后移一位elemi-1=e;.优选文档length+;return1;intList:ListDelete(inti)/删除一个元素,返回删除的元素if(le

9、ngth=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)/地址i后边的元素全部前移一位elemj=elemj+1;length-;returntemp;intList:GetElem(inti)/获取一个元素,返回元素值if(ilength)return0;returnelemi-1;intmain()inti,len,temp;ListmyList(20);/创办一个序次表,最大长度为20cinlen;for(i=1;itemp;myList.ListInsert(i,temp);for(i=1;im

10、yList.ListLength()+1;i+)/打印序次表coutmyList.GetElem(i);coutelemj;/输入插入数以及插入的地址myList.ListInsert(j,elem);/执行插入操作for(i=1;imyList.ListLength()+1;i+)/打印插入后的结果coutmyList.GetElem(i);coutj;/输入删除的地址myList.ListDelete(j);/执行删除操作for(i=1;imyList.ListLength()+1;i+)/打印插入后的结果coutmyList.GetElem(i);coutj;coutmyList.Get

11、Elem(j)endl;/输出指定地址的数据return0;:#includeusingnamespacestd;classListprivate:int*elem;/数组元素intlistsize;/序次表最大长度intlength;/序次表当前长度public:List(intsize);/构造函数List();/析构函数intListLength();/获取序次表的实质长度intListInsert(inti,inte);/插入一个元素intListDelete(inti);/删除一个元素,返回删除的元素intGetElem(inti);/获取一个元素,返回元素值intswap(inta

12、,intb);/交换二个元素;List:List(intsize)/构造函数listsize=size;length=0;elem=newintlistsize;List:List()/析构函数.优选文档deleteelem;intList:ListLength()/获取序次表的实质长度returnlength;intList:ListInsert(inti,inte)/插入一个元素if(length=listsize)return0;/序次表已满if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;

13、ji-1;j-)/地址i后边的元素全部后移一位elemj=elemj-1;elemi-1=e;length+;return1;intList:ListDelete(inti)/删除一个元素,返回删除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)/地址i后边的元素全部前移一位elemj=elemj+1;length-;returntemp;intList:GetElem(inti)/获取一个元素,返回元素值if(ilength)return0;returnelemi-1;.优选文

14、档intList:swap(inta,intb)/交换二个元素if(alength|blength|a=b)coutlen;for(i=1;itemp;myList.ListInsert(i,temp);for(i=1;imyList.ListLength()+1;i+)/打印序次表coutmyList.GetElem(i);coutxy;if(myList.swap(x,y)/交换这二个元素for(i=1;imyList.ListLength()+1;i+)/打印交换元素后的序次表coutmyList.GetElem(i);coutxy;if(myList.swap(x,y)/交换这二个元素

15、for(i=1;imyList.ListLength()+1;i+)/打印交换元素后的序次表.优选文档coutmyList.GetElem(i);coutendl;return0;C:#includeusingnamespacestd;classListprivate:int*elem;intlistsize;/序次表最大长度intlength;/序次表当前长度public:List(intsize);/构造函数List();/析构函数intListLength();/获取序次表的实质长度intListInsert(inti,inte);/插入一个元素intListDelete(inti);/

16、删除一个元素,返回删除的元素intGetElem(inti);/获取一个元素,返回元素值friendintfunc(List&a,List&b);/实现两个序次表的合并;List:List(intsize)/构造函数listsize=size;length=0;elem=newintlistsize;List:List()/析构函数deleteelem;/回收空间intList:ListLength()/获取序次表的实质长度returnlength;.优选文档intList:ListInsert(inti,inte)/插入一个元素if(length=listsize)return0;/序次表已

17、满if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj-1;/地址i后边的元素全部后移一位elemi-1=e;length+;return1;intList:ListDelete(inti)/删除一个元素,返回删除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)elemj=elemj+1;/地址i后边的元素全部前移一位length-;returnt

18、emp;intList:GetElem(inti)/获取一个元素,返回元素值if(ilength)return0;returnelemi-1;intfunc(List&A,List&B)/实现两个序次表的合并inta;for(inti=0;iB.ListLength();i+)a=-1;.优选文档for(intj=0;jA.ListLength();j+)if(B.elemi=a;k-)/地址i后边的元素全部前移一位A.elemk+1=A.elemk;A.elema=B.elemi;/将B.elemi插到地址i处A.length+;/序次表当前长度+1return0;intmain()inti

19、,len,temp;ListmyList1(100);/创办一个序次表1,最大长度为100ListmyList2(100);/创办一个序次表2,最大长度为100cinlen;/输入序次表1长度for(i=1;itemp;myList1.ListInsert(i,temp);cinlen;/输入序次表2长度for(i=1;itemp;myList2.ListInsert(i,temp);.优选文档func(myList1,myList2);/将序次表1与序次表2合并for(i=1;imyList1.ListLength()+1;i+)/输出合并后的结果coutmyList1.GetElem(i)

20、;coutendl;return0;D:#includeusingnamespacestd;classListprivate:int*elem;intlistsize;/序次表最大长度intlength;/序次表当前长度public:List(intsize);/构造函数List();/析构函数intListLength();/获取序次表的实质长度intListInsert(inti,inte);/插入一个元素intListDelete(inti);/删除一个元素,返回删除的元素intGetElem(inti);/查找一个元素,返回元素值intMove(inta,intb);List:List

21、(intsize)/构造函数listsize=size;length=0;elem=newintlistsize;List:List()/析构函数deleteelem;/回收空间intList:ListLength()/获取序次表的实质长度.优选文档returnlength;intList:ListInsert(inti,inte)/插入一个元素if(length=listsize)return0;/序次表已满if(ilength+1)return0;/i值不合法if(i=length+1)elemlength=e;elsefor(intj=length;ji-1;j-)elemj=elemj

22、-1;/地址i后边的元素全部后移一位elemi-1=e;length+;return1;intList:ListDelete(inti)/删除一个元素,返回删除的元素if(length=0)return0;if(ilength)return0;inttemp=elemi-1;for(intj=i-1;jlength;j+)elemj=elemj+1;/地址i后边的元素全部前移一位length-;returntemp;intList:GetElem(inti)/查找一个元素,返回元素值if(ilength)return0;returnelemi-1;intList:Move(inta,intb)inti,j;int*p=newint2*length;/先构造一个2倍长度的空间for(i=0;ilength;i+).优选文档pi=elemi;for(j=0;jlength;j+,i+)pi=elemj;/实质上p指向的是elem*2的数组if(a=0)/若a=0,则向左移for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论