线性表的合并
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性表的合并
#include
#include
#define listinitsize 100 #define OVERFLOW -1 /*线性表的定义*/
typedefstructsqlist
{
int *a;
int length;
intlistsize;
}sqlist
sqlistla,lb,lc;
/*建立一个空表*/
sqlistinitlist()
{
sqlist l;
l.a=(int*)malloc(listinitsize*sizeof(int));
if(!l.a)
exit(OVERFLOW);
l.length=0;
l.listsize=listinitsize;
return l; }
sqlistcreatlist(sqlistl,intnum)
{
int j;
int p;
for(j=1;j<=num;j++)
{
scanf("%d",&p);
la.a[j]=p;
la.length++;
}
}
/*合并两线性表*/
sqlistaddlist( sqlist la, sqlistlb, sqlistlc)
{
inti=1,j=1,k=1;
while(i<=la.length&& j<=lb.length) {
if(la.a[i]<=lb.a[j])
{
lc.a[k]=lb.a[i];
i++;
k++;
}
{
lc.a[k]=la.a[j];
j++;
k++;
}
}
while(i<=la.length)
{
lc.a[k]=la.a[i];
k++;
i++;
}
while(j<=lb.length)
{
lc.a[k]=lb.a[j];
k++;
j++;
}
lc.length=k-1;
returnlc; }
/*打印线性表*/
voidprintlist(sqlist l)
{
inti=1;
for(i=1;i<=l.length;i++)
printf("%6d",l.a[i]);
printf("\n");
}
/*删除线性表中的相同的元素*/ sqlistdelsame(sqlist L)
{
inti,j,k;
if(L.length>0)
{ j=0;
for(i=1;i
相关文档:
更多相关文档请访问: