线性表的合并

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档:

更多相关文档请访问:

相关文档
最新文档