顺序表合并c语言-创新互联
例2-2;已知线性表LA和B中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC且LC中的数据元素仍按值非递减有序排列例如
网站建设公司,为您提供网站建设,网站制作,网页设计及定制网站建设服务,专注于企业网站制作,高端网页制作,对花箱等多个行业拥有丰富的网站建设经验的网站建设公司。专业网站设计,网站优化推广哪家好,专业成都网站营销优化,H5建站,响应式网站。LA=(3,5,8,11)
LB=(2,6,8,9,11,15,20)
则Lc(2,3,5,6,8,8,9,11,11,15,20)
//代码如下
#include
#include
#define MAXSIZE 50
typedef struct l
{
int data[MAXSIZE];
int length;//顺序表中当前的有效元素
}sqlist;
//初始化
void initlist(sqlist*l)
{
int i;
for (i=0;i
l->data[i]=0;
}
l->length=0;
}
sqlist* creatlist(sqlist*l)
{
int i,val;
printf("请输入数据\n");
printf("请输入数字,若输入下一个数字则输入空格,输入-1时停止\n");
scanf("%d",&val);
for (i=0;i
if(val!=-1)
{
l->data[i]=val;
l->length++;
scanf("%d",&val);
}
}
return l;
}
void output(sqlist*l)
{
int i;
for (i=0;i
{
printf("%d\t",l->data[i]);
}
printf("\n");
}
void mergelist(sqlist *l1,sqlist*l2,sqlist*l3)
{
int i,j;
int m;
i=0;
j=0;
int k=0;
m=0;
for(k=0;k
{
while (l1->data[i]==l2->data[j]&&j
{
l3->data[m]=l1->data[i];
l3->data[m+1]=l2->data[j];
l3->length = l3->length+2;
m=m+2;
i++;
j++;
}
while (l1->data[i]
{
l3->data[m]=l1->data[i];
i++;
m++;
l3->length++;
}
while (l1->data[i]>l2->data[j]&&j
{
l3->data[m]=l2->data[j];
j++;
m++;
l3->length++;
}
while(i>=l1->length&&j
{
l3->data[m]=l2->data[j];
m++;
l3->length++;
j++;
}
}
}
int main()
{
sqlist l1;
sqlist l2;
sqlist l3;
initlist(&l1);
initlist(&l2);
initlist(&l3);
creatlist(&l1);
creatlist(&l2);
output (&l1);
output(&l2);
mergelist(&l1,&l2,&l3);
output(&l3);
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页标题:顺序表合并c语言-创新互联
转载源于:http://scyanting.com/article/dgjgpg.html