线性表:

        0个或者多个数据元素的有限序列。

线性表的抽象数据结构:

       

 
  
  1. ADT xianxingbiao (List)  
  2. Data  
  3. Operation  
  4.     void initList(*L);//创建并初始化一个空线性表,如果成功返回true,修改表传指针   
  5.     bool listEmpty(L);//判断一个线性表是否为空,不修改表传值   
  6.     void clearList(*L);//清空一个线性表,成功返回true   
  7.     bool getElem(L,i,*e);//从某个位置取出元素并赋值给e(i的范围是[1,L.length]),修改e的值所以传递一个指针,成功返回true  
  8.     int locateElem(L,e);//查找线性表中是否有e,如果有返回它的位置(从1开始),否则返回0表示失败  
  9.     bool listInsert(*L,i,e);//插入一个元素e在第i个元素之前(i的取值范围是[1,L.length+1]) ,成功返回true   
  10.     bool listDelete(*L,i,*e);//删除在第i个位置上的元素(i的取值范围是[1,L.length]),删除的元素赋给e,成功返回true  
  11.     int listLength(L);//返回线性表的元素个数  
  12. endADT  

线性表的合并

 
  
  1. void unionL(List *la,List lb){  
  2.     int index;  
  3.     int laLength = listLength(*la);//得到a的长度,需要一个线性表而不是一个地址   
  4.     int lbLength = listLength(lb);}   
  5.     ElemType e;//声明一个元素   
  6.       
  7.     for(index=1;index<=lbLength;index++){//遍历lb   
  8.         getElem(lb,index,&e);//依次得到lb中的元素   
  9.         if(!locateElem(*la,e)){//检查是否在la中出现   
  10.             listInsert(la,++laLength,e);//没有出现则插入队尾,前自增!   
  11.         }  
  12.     }  
  13. }