结构推理 已知一个顺序表LA,现在要求复制一个LA的拷贝LB。
   这个算法实现的思路是:定义两个等长度的顺序表,将LB初始化为空表,然后依次从LA中取数据元素,插入到顺序表LB对应的位置上。
【正确答案】算法实现如下:
   #include<sequenlist.h>    /*将顺序表的定义及基本操作写在头文件sequenlist.h中*/
   void COPYLIST(SEQUENLIST  *LA,SEQUENLIST  *LB)
   {  int  k,n;
       DATATYPEI x;
       INITIATE(LB);
       n=LENGTH(LA);
       if(n!=0)
           for(k=1;k<=n;k++)
           {x=GET(LA,k);
               INSERT(LB,k,x);
           }
       else
           printf("List iS empty");
   }
   void create(SEQUENLIST*L)    /*建立顺序表*/
   {  int i,j,k;
       printf("输入线性表的元素,-99结束");
       scanf("/%d",&i);
       j=0;
       k=0;
       while(i!=-99)
       {  j++;
           L->data[k]=i;
           k++;
           scanf("/%d",&i);
       }
       L->len=j;
   }
   void print(SEQUENLIST*L)    /*输出顺序表*/
   {  int i;
       for(i=0;i<L->len;i++)
           printf("/%d\t",L->data[i]);
   }
   main()
   {  SEQUENLIST a,b,*la,*lb;
       la=&a;
       lb=&b;
       create(la);
       print(la);
       COPYLIST(la,lb);
       print(lb);
   }
【答案解析】