静态数组线性表 将两个集合插入另一个集合并排序

#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100//链表的最大长度
#define LISTINREMENT 12//链表现有的长度

typedef struct sqlist  {
  int *A;
  int length;//链表当前长度
  int listsize;//链表最大长度

};

//初始化链表

int InitList(sqlist &L){
     
   L.length = 0;  //长度初始化为0

      L.listsize= LIST_INIT_SIZE;

   L.A=(int*)malloc(LIST_INIT_SIZE*sizeof(int));//给链表分配最大的一内存块
   return 1;
}


/*被插入的链表为全局的 j为插入的位数 e是需要插入的元素 */
void ListInsert(sqlist &L,int j,int e){
 int j;
       for(j = L.length - 1 ;j > 0 ;j--)
     L.A[j+1] = L.A[j];
       L.A[j] = e;
    L.length++;//插入一个当前链表的长度加1

}


//计算链表长度
int ListLength(sqlist L){
   return L.length;
}

//从链表L中获取 第i个元素的值
void GetElem(sqlist L,int i,int &e){

 e = L.A[i];

}

//将 链表La Lb 按照从小到大的顺序 一次插入到链表Lc中去

void MergeList(sqlist La,sqlist Lb,sqlist &Lc){
   int i, j ,k,La_len,Lb_len;
   InitList(Lc);
   i = j = 0;
   k = 0;
   La_len = ListLength(La);
   Lb_len = ListLength(Lb);
 

   while((i <= La_len-1) && (j <= Lb_len-1)){
       GetElem (La, i, La.A[i]);
    GetElem(Lb, j, Lb.A[j]);
    if (La.A[i] <= Lb.A[j] )
    {
     ListInsert (Lc, k, La.A[i]);
     k++;
     ++i;
   // printf("%d ",k);
    }
    else
    {
     ListInsert(Lc,k,Lb.A[j]);
     k++;
     ++j;
     //printf("%d ",k);
    }
   }
   //printf("%d ",i);
  // printf("%d ",j);
   while (i <= La_len-1){
      GetElem(La,i,La.A[i]);
  // printf("%d ",La.A[i]);
   //i++;
     
      //printf("%d ",k);
   ListInsert(Lc,k,La.A[i]);
      k++;
   //printf("%d ",Lc.A[11]);
  // printf("%d ",k);
   i++;
   }

 while (j <= Lb_len-1)
 {
      GetElem(Lb,j,Lb.A[j]);
   j++;
   ListInsert(Lc,k,Lb.A[j]);
   k++;
   //printf("test");  
}
//printf("%d",Lc.A[10]);
}


int main()
{
 int i;
 sqlist La;
 sqlist Lb;
 sqlist Lc;
InitList( La);
InitList( Lb);

La.A[0]=3;
La.A[1]=5;
La.A[2]=8;
La.A[3]=21;
La.length=4;

Lb.A[0]=2;
Lb.A[1]=6;
Lb.A[2]=8;
Lb.A[3]=9;
Lb.A[4]=11;
Lb.A[5]=15;
Lb.A[6]=20;
Lb.length=7;

 MergeList(La, Lb, Lc);
 //printf("%d ",Lc.length);
 
 for(i = 0; i <Lc.length; i++)  
   printf("%d ",Lc.A[i]);
 return 0;
}

每个人的强大都是从弱小开始慢慢积累起来的!!
原文地址:https://www.cnblogs.com/gaoanchen/p/3250549.html