数据结构实验报告二线性表的顺序存储Word格式文档下载.docx

上传人:b****3 文档编号:15699217 上传时间:2022-11-15 格式:DOCX 页数:17 大小:149.06KB
下载 相关 举报
数据结构实验报告二线性表的顺序存储Word格式文档下载.docx_第1页
第1页 / 共17页
数据结构实验报告二线性表的顺序存储Word格式文档下载.docx_第2页
第2页 / 共17页
数据结构实验报告二线性表的顺序存储Word格式文档下载.docx_第3页
第3页 / 共17页
数据结构实验报告二线性表的顺序存储Word格式文档下载.docx_第4页
第4页 / 共17页
数据结构实验报告二线性表的顺序存储Word格式文档下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据结构实验报告二线性表的顺序存储Word格式文档下载.docx

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

数据结构实验报告二线性表的顺序存储Word格式文档下载.docx

//定义模板类SeqList

classSeqList

{

public:

SeqList();

//无参构造函数

SeqList(datatypea[],intn);

//有参构造函数

~SeqList(){};

//析构函数为空

intLength();

//求线性表的长度

datatypeGet(inti);

//按位查找,取线性表的第i个元素

intLocate(datatypeitem);

//查找元素item

voidInsert(inti,datatypeitem);

//在第i个位置插入元素item

datatypeDelete(inti);

//删除线性表的第i个元素

voiddisplay();

//遍历线性表,按序号依次输出各元素

private:

datatypedata[MaxSize];

//存放数据元素的数组

intlength;

//线性表的长度

};

(2)初始化顺序表算法实现(不带参数的构造函数)

/*

*输入:

*前置条件:

顺序表不存在

*功能:

构建一个顺序表

*输出:

*后置条件:

表长为0

*/

实现代码:

SeqList<

datatype>

:

SeqList()

length=0;

}

(3)顺序表的建立算法(带参数的构造函数)

顺序表信息的数组形式a[],顺序表长度n

将数组a[]中元素建为长度为n的顺序表

SeqList(datatypea[],intn)

if(n>

MaxSize)

{

cout<

<

"

数组元素个数不合法"

endl;

}

for(inti=0;

i<

n;

i++)

data[i]=a[i];

length=n;

}(4)在顺序表的第i个位置前插入元素e算法

插入元素e,插入位置i

顺序表存在,i要合法

将元素e插入到顺序表中位置i处

顺序表插入新元素,表长加1

voidSeqList<

Insert(inti,datatypeitem)

{

intj;

if(length>

=MaxSize)

溢出"

if(i<

1||i>

length+1)

i不合法!

for(j=length;

j>

=i;

j--)

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

data[i-1]=item;

length++;

}(5)删除线性表中第i个元素算法

要删除元素位置i

顺序表存在,i要合法

删除顺序表中位置为i的元素

顺序表册除了一个元素,表长减1

datatypeSeqList<

Delete(inti)

intitem,j;

if(length==0)

表为空,无法删除元素!

length)

i不合法!

item=data[i-1];

//获得要删除的元素值

for(j=i;

j<

length;

j++)

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

//注意数组下标从0记

length--;

returnitem;

}(6)遍历线性表元素算法

顺序表存在

顺序表遍历

输出所有元素

template<

display()

if(length==0)

表为空,无法输出!

for(inti=0;

i<

i++)

data[i]<

 "

;

(7)获得线性表长度算法

输出顺序表长度

顺序表长度

intSeqList<

Length()

returnLength;

(8)在顺序线性表中查找e值,返回该元素的位序算法

查询元素值e

按值查找值的元素并输出位置

查询元素的位置

Locate(datatypeitem)

i++)

if(data[i]==item)

returni+1;

//下标为i的元素等于item,返回其序号i+1

return0;

//查找失败

(9)获得顺序线性表第i个元素的值

查询元素位置i

按位查找位置为i的元素并输出值

查询元素的值

Get(inti)

0||i>

length)

elsereturndata[i-1];

(10)判表空算法

判表是否为空

为空返回1,不为空返回0

boolSeqList<

Empty()

if(length==0)

return1;

}

else

return0;

(11)求直接前驱结点算法

要查找的元素e,待存放前驱结点值e1

查找该元素的所在位置,获得其前驱所在位置。

返回其前驱结点的位序。

e1值为前驱结点的值

Pre(datatypeitem)

intk=Locate(item)-1;

if(k>

0)

returnk;

无前驱结点!

(12)求直接后继结点算法

要查找的元素e,待存放后继结点值e1

查找该元素的所在位置,获得其后继所在位置。

返回其后继结点的位序。

e1值为后继结点的值

Suc(datatypeitem)

intk=Locate(item)+1;

无后继结点!

return0;

上机实现以上基本操作,写出main()程序:

voidmain()

SeqList<

int>

Seq;

//创建

if(Seq.Empty())

线性表为空!

//判断是否为空操作

Seq.Insert(1,1);

Seq.Insert(2,2);

Seq.Insert(3,3);

Seq.Insert(4,4);

Seq.Insert(5,5);

//插入元素操作

cout<

输出插入的五个元素:

Seq.display();

//按序号依次输出各元素

2是第"

Seq.Locate

(2)<

个元素"

//查找元素位置

第五个元素是:

Seq.Get(5)<

//查找第五个元素

线性表的长度为:

Seq.Length()<

//输出线性表长度

Seq.Delete(3);

//删除元素

删除第三个元素后的线性表为:

//输出删除元素后的线性表

元素2前驱结点的位置为:

Seq.Pre

(2)<

//获得前驱结点位置

元素2前驱结点的数值为:

Seq.Get(Seq.Pre

(2))<

//获得前驱结点

元素4后继结点的位置为:

Seq.Suc(4)<

//获得后继结点位置

元素4后继结点的数值为:

Seq.Get(Seq.Suc(4))<

//获得后继结点

要求对每个算法都加以测试,判断是否正确;

并测试不同类型数据的操作。

粘贴测试数据及运行结果:

2、用以上基本操作算法,实现A=AUB算法。

(利用函数模板实现)

集合A,集合B

实现A=AUB

A中

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

当前位置:首页 > 自然科学 > 物理

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

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