空间数据结构上机实验报告.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

《空间数据结构基础》

上机实验报告(2010级)

姓名

班级

学号

环境与测绘学院

1.顺序表的定义与应用(课本P85习题)

【实验目的】

熟练掌握顺序表的定义与应用,通过上机实践加深对顺序表概念的理解。

【实验内容】

设有两个整数类型的顺序表A(有m个元素)和B(有n个元素),其元素均从小到大排列。试编写一个函数,将这两个顺序表合并成一个顺序表C,要求C的元素也从小到大排列。

【主要代码】

#includeiostream.h//定义在头文件“SeqList.h”中

#includestdlib.h

constintdefaultSize=100;

templateclassT

classSeqList{

protected:

T*data;//存放数组

intmaxSize;//最大可容纳表象的项数

intLast;//当前已存表象的项数

voidreSize(intnewSize);//改变data数组空间大小

public:

SeqList(intsz=defaultSize);

SeqList(SeqListTL);

~SeqList(){delete[]data;}

intSize()const{returnmaxSize;}

intLength()const{returnLast+1;}

intSearch(Tx)const;

intLocate(inti)const;

TgetData(inti)const;

boolsetData(inti,Tx)

{if(i0i=Last+1)data[i-1]=x;}

boolInsert(inti,Tx);

boolRemove(inti,Tx);

boolIsEmpty()

{return(Last==-1)?true:false;}

boolIsFull()

{return(Last==maxSize-1)?true:false;}

voidinput();

voidoutput();

SeqListToperator=(SeqListTL);

friendvoidrank(SeqListintL);

friend voidhebing(SeqListintLA,SeqListintLB);

};

//构造函数,通过指定参数sz定义数组的长度

templateclassT

SeqListT::SeqList(intsz){

if(sz0){

maxSize=sz;

Last=-1;

data=newT[maxSize];

if(data==NULL)

{cerr存储分配错误endl;exit(1);}

}

}

//复制构造函数,用参数表中给出的已有顺序表初始化新建的顺序表

templateclassT

SeqListT::SeqList(SeqListTL){

maxSize=L.Size();

Last=L.Length()-1;

data=newT[maxSize];

if(data==NULL)

{cerr存储分配错误endl;exit(1);}

for(inti=1;i=Last+1;i++)

data[i-1]=L.getData(i);

}

//用于取第i个表项的值

templateclassT

TSeqListT::getData(inti)const{

if(i1||iLast+1){cerr存储分配错误endl;exit(1);}

elsereturndata[i-1];

}

//私有函数,扩充顺序表的存储空间大小,新数组的元素个数为newsize

templateclassT

voidSeqListT::reSize(intnewSize)

{

if(newSize=0)

{cerr无效的数组大小endl;return;}

if(newSize!=maxSize)

{T*newarray=newT[newarray];

if(newarray=NULL)

{cerr存储分配错误endl;exit(1);}

intn=Last+1;

T*srcptr=data;

T*destptr=newarray;

while(n--)*destptr

文档评论(0)

张胜 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档