实验二线性表.docx
《实验二线性表.docx》由会员分享,可在线阅读,更多相关《实验二线性表.docx(7页珍藏版)》请在冰豆网上搜索。
实验二线性表
实验二线性表
江南大学物联网工程学院上机报告
课程名称
数据结构
上机名称
顺序表的实现和应用
上机日期
2016-01-15
班 级
姓 名
学 号
上机报告要求 1.上机名称 2.上机要求 3.上机环境 4.程序清单(写明运行结果) 5.上机体会
1.上机名称
顺序表的实现和应用
2.上机要求
⑴定义线性表的顺序存储表示;
⑵基于所设计的存储结构实现线性表的基本操作;
⑶编写一个主程序对所实现的线性表进行测试;
⑷线性表的应用:
①设线性表L1和L2分别代表集合A和B,试设计算法求A和B的并集C,并用线性表L3代表集合C;②(选做)设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。
3.上机环境
VisualC++6.0
4.程序清单(写明运行结果)
#include
#defineMAXSIZE100
typedefcharElemType;
typedefstruct
{
ElemTypedata[MAXSIZE];
intlength;
}SqList;
voidInitList(SqList&sq)
{
sq.length=0;
}
intGetLength(SqListsq)
{
returnsq.length;
}
intGetElem(SqListsq,inti,ElemType&e)
{
if(i<1||i>sq.length)
return0;
else
{
e=sq.data[i-1];
return1;
}
}
intLocate(SqListsq,ElemTypex)
{
inti=0;
while(sq.data[i]!
=x)
i++;
if(i>sq.length)
return(0);
else
return(i+1);
}
intInsElem(SqList&sq,ElemTypex,inti)
{
intj;
if(i<1||i>sq.length+1)
return0;
for(j=sq.length;j>i-1;j--)
sq.data[j]=sq.data[j-1];
sq.data[i-1]=x;
sq.length++;
return1;
}
intDelElem(SqList&sq,inti)
{
intj;
if(i<1||i>sq.length)
return0;
for(j=i;jsq.data[j-1]=sq.data[j];
sq.length--;
return1;
}
voidDispList(SqListsq)
{
inti;
for(i=1;i<=sq.length;i++)
printf("%c",sq.data[i-1]);
printf("\n");
}
voidMargeList_Sq(SqListA,SqListB,SqList&C)
{
inti,j=0;
C.length=0;
for(i=0;i{
C.data[i]=A.data[j];
j++;
}
C.length=i;
for(i=0,j=0;i{
C.data[C.length+i]=B.data[j];
j++;
}
C.length=C.length+i;
}
voidcommon(SqListA,SqListB,SqList&C)
{
inti,j,k,n;
MargeList_Sq(A,B,C);
n=C.length;
for(i=0;ifor(j=i+1;j{
if(C.data[j]==C.data[i])
{
for(k=j;kC.data[k]=C.data[k+1];
n--;
}
}
C.length=n;
}
voidmain()
{
inti;
ElemTypee;
SqListA,B,C;
InitList(A);
InitList(B);
InitList(C);
InsElem(A,'4',1);
InsElem(A,'1',2);
InsElem(A,'2',3);
InsElem(A,'7',4);
InsElem(A,'9',5);
InsElem(A,'6',6);
InsElem(B,'3',1);
InsElem(B,'2',2);
InsElem(B,'8',3);
InsElem(B,'9',4);
InsElem(B,'5',5);
InsElem(B,'4',6);
printf("线性表A:
");DispList(A);
printf("线性表B:
");DispList(B);
common(A,B,C);
printf("线性表C:
");DispList(C);
}
5.上机体会
这次的实验大致还算比较成功,在书上提供了大致的思路,我们只需要根据思路来编写相应的函数,而相应的函数在书上和老师上课内容都有提及到。
不过,过程也不是一帆风顺的,比如编写的函数当中有一些错误,还要耐心的修改以及查阅书籍并作相应的改正。
同时,思路也是书上了,感觉自己还需要进一步的理解这个思路并在以后相似的题目中也能够完整地编写程序而不是靠查阅书籍。
继续努力吧!
教师评价
优
良
中
及格
不及格
教师签名
日期