顺序表实验报告Word文档格式.docx
- 文档编号:20336400
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:14
- 大小:251.99KB
顺序表实验报告Word文档格式.docx
《顺序表实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《顺序表实验报告Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
#include"
iostream.h"
//C++头文件
#defineMAXLEN100//定义线性表的最大容量
typedefintelementType;
//定义数据元素的数据类型
//*定义顺序表的结构*//
//*2个分量组成,data[]数组存放数据元素*//
//*listLen表示表中元素个数*//
//*用typedef将其定义为数据类型seqList*//
/*typedefstructsList
{
elementTypedata[MAXLEN];
intlistLen;
}seqList;
*/
structsList
};
typedefstructsListseqList;
//1.初始化表
//*函数功能:
初始化顺序表--置空表*//
//*函数参数:
seqList类型指针,指向顺序表*//
//*返回值:
空*//
//*文件名:
seqList.h函数名:
listInitial*//
voidlistInitial(seqList*L)
L->
listLen=0;
}
//2.求表长度
求表长度,即元素个数*//
seqList类型变量*//
整型,表的长度*//
listLength*//
intlistLength(seqListL)
returnL.listLen;
//3.获取元素
按给定序号,取出表中元素*//
//*输入参数:
seqListL,为当前顺序表*//
//*inti,指定元素序号*//
//*输出参数:
elementType*x,返回获取的元素*//
bool,0:
取元素失败,1成功*//
getElement*//
boolgetElement(seqListL,inti,elementType*x)
if(i<
1||i>
L.listLen)
return0;
else
{
(*x)=L.data[i-1];
return1;
}
//4.定位元素
给定元素,获取其在表中的序号*//
//*elementTypex,给定的元素*//
无*//
元素序号,0表示元素不在表中*//
listLocate*//
intlistLocate(seqListL,elementTypex)
inti;
for(i=0;
i<
L.listLen;
i++)
if(L.data[i]==x)
returni+1;
return0;
//5.插入元素
在给定位置,插入给定元素*//
seqList*L,为当前顺序表指针*//
//*elementTypex,给定的插入元素*//
//*inti,给定的插入位置*//
seqList*L,为当前顺序表指针*//
整型数,0:
表满;
1:
插入位置非法*//
//*2:
插入成功*//
listInsert*//
intlistInsert(seqList*L,elementTypex,inti)
intj;
if(L->
listLen==MAXLEN)
//表满,返回0
elseif(i<
L->
listLen+1)
//序号超出范围,返回1
for(j=L->
listLen-1;
j>
=i-1;
j--)
L->
data[j+1]=L->
data[j];
//循环后移表元素
L->
data[i-1]=x;
//插入元素x
listLen++;
//表长度增1
return2;
//成功插入,返回值2
}
//6.删除元素
删除表中指定位置的元素*//
//*inti,给定的删除位置*//
删除位置非法*//
删除成功*//
listDelete*//
intlistDelete(seqList*L,inti)
listLen<
=0)
//空表,返回值0
listLen)
//删除的序号不在有效范围内
for(j=i;
j<
listLen;
j++)
data[j-1]=L->
//循环前移表元素
listLen--;
//修改表长度
//成功删除,返回值2.
//-------------*以下函数为测试用的辅助函数*----------------------//
//7.打印表中所有元素
屏幕打印顺序表中所有元素*//
无*//
listPrint*//
voidlistPrint(seqListL)
i<
i++)
cout<
<
L.data[i]<
"
\t"
;
//元素之间以制表符分割
cout<
endl;
//8.交互输入数据元素--特殊输入结束
voidlistInputC(seqList*pL)
if(pL->
listLen>
0)
顺序表已经存在,请先初始化,再输入元素。
return;
elementTypex;
请输入数据元素(整数,9999退出):
cin>
>
x;
while(x!
=9999)
pL->
data[pL->
listLen]=x;
cin>
//9.交互输入数据元素--指定元素个数
voidlistInputC1(seqList*pL)
inti,n;
//元素个数
请输入元素个数:
n="
n;
pL->
data[i];
//10.插入元素使递增有序
intlist_Insert(seqList*s,elementTypex)
if(s->
//表满
inti=s->
//i为表中最后元素数组下表
while(i>
=0&
&
s->
data[i]>
x){
s->
data[i+1]=s->
i--;
data[i+1]=x;
return1;
//11.分离奇偶元素
voidlistDepart(seqList*s,seqList*odd,seqList*even)
inti,j=0,k=0;
//数组下标i,j
s->
i++){
if(s->
data[i]%2==0){
even->
data[j]=s->
j++;
}else{
odd->
data[k]=s->
k++;
}
//12.求两个表中的共有元素
voidlistCommon(seqLists,seqListA,seqListB)
inti=1,ia=0,ib=0;
//数组下标
while(ia<
A.listLen&
ib<
B.listLen){
if(A.data[ia]==B.data[ib]){
x=A.data[ia];
listInsert(&
s,x,i);
i++;
ia++;
ib++;
if(A.data[ia]>
B.data[ib])
ib++;
if(A.data[ia]<
ia++;
listPrint(s);
//13.删除表中重复元素,统计移动元素次序
intdeleteCom(seqList&
s)
inti,j,k;
//数组下表
intsum=0;
s.listLen;
for(j=i+1;
j<
j++){
if(s.data[i]==s.data[j]){
for(k=j+1;
k<
k++){
s.data[k-1]=s.data[k];
sum++;
}
s.listLen--;
j--;
}
returnsum;
4.算法设计
(除书上给出的基本运算(这部分不必给出设计思想),其它实验内容要给出算法设计思想)
5.运行和测试
6.总结和心得
通过本次实验,我明白了如何正确使用visualC++6.0,知道了头文件的作用和使用方法,这是以往我所不知道的!
头文件真的很使用,增加了我学习C++、C、和数据结构的兴趣!
另外,在本次实验中,我通过自身的努力,成功编译出多个代码,并成功运行了!
事实证明:
无论什么事,只要自己真的用心了,只要想做好,就没有什么是不可能的!
[7.附录]
(源代码清单。
纸质报告不做要求。
电子报告,可直接附源文件,删除编译生成的所有文件)
源文件请看文件夹:
seqList
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 实验 报告