顺序表合并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;ilength;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;klength;k++)
{

while (l1->data[i]==l2->data[j]&&jlength )  
{
 
 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]data[j]&&ilength)

 {
 

    l3->data[m]=l1->data[i];
    i++;
    m++;
    l3->length++;
        
 }
 
 while (l1->data[i]>l2->data[j]&&jlength)
 {
     
     l3->data[m]=l2->data[j];
     j++;
     m++;
     l3->length++;
 
 }
 
 while(i>=l1->length&&jlength)
 {
     
     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