永发信息网

c语言 两个顺序表的合并,请高手帮小弟该一下我写的程序

答案:1  悬赏:20  手机版
解决时间 2021-04-14 00:03
  • 提问者网友:溺爱和你
  • 2021-04-13 16:28

#include <stdio.h>
#define MAXSIZE 100
typedef struct
{int data[MAXSIZE];
int length;
}seqlist;
void intlist(seqlist *l)
{l->length=0;
}
void creatlist(seqlist *l)
{int x;
scanf("%d",&x);
while(x!=-1)
{l->data[l->length]=x;
l->length++;
scanf("%d",&x);}
}
void outputlist(seqlist *l)
{int i;
for(i=0;i<l->length;i++)
printf("%d ",l->data[i]);
}
void mergelist(seqlist *a,seqlist *b,seqlist *c)
{
int i,j,k;
i=0;j=0;k=0;
while(i<=a->length&&j<=b->length)
if(a->data[i]<b->data[j])
{
c->data[k]=a->data[i];
i++;k++;
}
else
{
c->data[k]=b->data[j];
j++;k++;
}
while(i<=a->length)
{
c->data[k]=a->data[i];
i++;k++;
}
while(j<=b->length)
{
c->data[k]=b->data[j];
i++;k++;
}
c->length=k-1;
outputlist(c);
}
void main()
{seqlist *la,*lb,*l;
int i;
intlist(la);
intlist(lb);
printf("\ninput the la data:");
creatlist(la);
printf("\ninput the lb data:");
creatlist(lb);
printf("\noutput the la data:");
outputlist(la);
printf("\noutput the lb data:");
outputlist(lb);
printf("\noutput the la and lb data:");
mergelist(la,lb,l);
getch();
}


最佳答案
  • 五星知识达人网友:鸠书
  • 2021-04-13 17:32

#include <stdio.h>
#define MAXSIZE 100
typedef struct
{int data[MAXSIZE];
int length;
}seqlist;
void intlist(seqlist *l)
{l->length=0;
}
void creatlist(seqlist *l)
{int x;
scanf("%d",&x);
while(x!=-1)
{l->data[l->length]=x;
l->length++;
scanf("%d",&x);}
}
void outputlist(seqlist *l)
{int i;
for(i=0;i<l->length;i++)
printf("%d ",l->data[i]);
}
void mergelist(seqlist *a,seqlist *b,seqlist *c)
{
int i,j,k;
i=0;j=0;k=0;
while(i<a->length&&j<b->length)
if(a->data[i]==b->data[j])
{
c->data[k]=a->data[i];
i++;k++; j++;
}
else if(a->data[i]<b->data[j])
{
c->data[k]=a->data[i];
i++;k++;
}
else
{
c->data[k]=b->data[j];
j++;k++;
}
while(i<a->length)
{
c->data[k]=a->data[i];
i++;k++;
}
while(j<b->length)
{
c->data[k]=b->data[j];
i++;k++;
}
c->length=k;
outputlist(c);
}
void main()
{seqlist *la,*lb,*l;
int i;
intlist(la);
intlist(lb);
printf("\ninput the la data:");
creatlist(la);
printf("\ninput the lb data:");
creatlist(lb);
printf("\noutput the la data:");
outputlist(la);
printf("\noutput the lb data:");
outputlist(lb);
printf("\noutput the la and lb data:");
mergelist(la,lb,l);
getch();
}


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯