数据结构顺序表Word格式文档下载.docx

上传人:b****6 文档编号:20309572 上传时间:2023-01-21 格式:DOCX 页数:15 大小:63.09KB
下载 相关 举报
数据结构顺序表Word格式文档下载.docx_第1页
第1页 / 共15页
数据结构顺序表Word格式文档下载.docx_第2页
第2页 / 共15页
数据结构顺序表Word格式文档下载.docx_第3页
第3页 / 共15页
数据结构顺序表Word格式文档下载.docx_第4页
第4页 / 共15页
数据结构顺序表Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数据结构顺序表Word格式文档下载.docx

《数据结构顺序表Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构顺序表Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

数据结构顺序表Word格式文档下载.docx

intmaxsize;

intlast;

voidresize(intnewsize);

public:

List(intsz=defaultSize);

//构造函数

List(List<

T>

&

L);

//复制构造函数

~List(){delete[]data;

}//析构函数

intSize()const{returnmaxsize;

}//计算表最大可容纳个数

intLength()const{returnlast+1;

}//计算表长度

intSearch(T&

x)const;

//搜索x在表中位置,函数返回表项序号

intLocate(inti)const;

//定位第i个表项,函数返回表项序号

boolgetData(inti,T&

x)const//取第i个表项的值

{

if(i>

0&

i<

=last+1)

{

x=data[i-1];

returntrue;

}

elsereturnfalse;

}

voidsetData(inti,T&

Xx)//用x修改第i个表项的值

data[i-1]=x;

boolInsert(inti,T&

x);

//插入x在第i个表项之后

boolRemove(inti,T&

//删除第i个表项,通过x返回表项的值

boolIsEmpty()//判断空否,空则返回true;

否则返回false

return(last==-1)?

true:

false;

boolIsFull()//判断满否

return(last==maxsize-1)?

voidinput();

//输入

voidoutput();

//输出

List<

operator=(List<

L);

//表整体赋值

};

#endif

List<

:

List(intsz)//构造函数

if(sz>

0)

{

last=-1;

maxsize=sz;

data=newT[maxsize];

if(data==NULL)

cerr<

<

"

存储分配错误!

endl;

exit

(1);

}

}

List(List<

L)//复制构造函数

maxsize=L.Size();

last=L.Length()-1;

Tvalue;

data=newT[maxsize];

//创建顺序表存储数组

if(data==NULL)

cerr<

exit

(1);

for(inti=1;

=last+1;

i++)

L.getData(i,value);

data[i-1]=value;

voidList<

resize(intnewsize)//扩大数组空间

if(newsize<

=0)

无效的数组大小"

if(newsize!

=maxsize)

T*newarray=newT[newsize];

if(newarray==NULL)

intn=last+1;

T*srcptr=data;

//源数组首地址

T*destptr=newarray;

//目的数组首地址

while(n--)

*destptr--=*srcptr--;

delete[]data;

data=newarray;

maxsize=newsize;

intList<

Search(T&

x)const//搜索x在表中位置,函数返回表项序号

for(inti=0;

=last;

if(data[i]==x)

returni+1;

//成功搜索

return0;

//失败搜索

Locate(inti)const//定位第i个表项,函数返回表项序号

if(i>

=1&

last+1)

returni;

elsereturn0;

boolList<

Insert(inti,T&

x)//插入x在第i个表项之后

if(last==maxsize-1)returnfalse;

//表满,不能输入

if(i<

0||i>

last+1)returnfalse;

//参数i不合理,不能插入

for(intj=last;

j>

=i;

j--)

data[j+1]=data[j];

data[i]=x;

last++;

returntrue;

Remove(inti,T&

x)//删除第i个表项,通过x返回表项的值

if(last==-1)returnfalse;

//表空,不能删除

1||i>

//参数i不合理,不能删除

x=data[i-1];

for(intj=i;

j<

j++)

data[j-1]=data[j];

last--;

input()//输入

cout<

开始建立顺序表,请输入表中元素个数:

;

while

(1)

cin>

>

last;

last=last-1;

if(last<

=maxsize-1)break;

cout<

表元素个数输入错误,范围不能超过"

maxsize-1<

请输入第"

i+1<

个元素"

data[i];

output()//输出

顺序表当前元素最后位置为:

last+1<

#"

data[i]<

//主函数

#include"

List.h"

usingnamespacestd;

intmain()

List<

int>

L1;

intx,i;

***********实现输入功能************"

L1.input();

L1输出数据为:

L1.output();

***************************************"

***********实现复制构造函数功能************"

L2(L1);

L2通过复制构造函数输出数据为:

L2.output();

***********实现搜索函数功能************"

L1数据为:

请输入要找的数据:

cin>

x;

搜索函数输出数据为:

L1.Search(x)<

***********实现函数定位功能************"

请输入要找第几个数据:

i;

定位函数输出数据为:

L1.Locate(i)<

***********实现函数插入功能************"

请输入要插入到第几个位置:

请输入要插入的元素:

插入函数输出数据为:

L1.Insert(i,x)<

***********实现函数删除功能************"

请输入要删除第几个元素:

L1.Remove(i,x);

删除数据为:

x<

函数删除后输出数据为:

结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 制度规范

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1