线性表:
0个或者多个数据元素的有限序列。
线性表的抽象数据结构:
- ADT xianxingbiao (List)
- Data
- Operation
- void initList(*L);//创建并初始化一个空线性表,如果成功返回true,修改表传指针
- bool listEmpty(L);//判断一个线性表是否为空,不修改表传值
- void clearList(*L);//清空一个线性表,成功返回true
- bool getElem(L,i,*e);//从某个位置取出元素并赋值给e(i的范围是[1,L.length]),修改e的值所以传递一个指针,成功返回true
- int locateElem(L,e);//查找线性表中是否有e,如果有返回它的位置(从1开始),否则返回0表示失败
- bool listInsert(*L,i,e);//插入一个元素e在第i个元素之前(i的取值范围是[1,L.length+1]) ,成功返回true
- bool listDelete(*L,i,*e);//删除在第i个位置上的元素(i的取值范围是[1,L.length]),删除的元素赋给e,成功返回true
- int listLength(L);//返回线性表的元素个数
- endADT
线性表的合并
- void unionL(List *la,List lb){
- int index;
- int laLength = listLength(*la);//得到a的长度,需要一个线性表而不是一个地址
- int lbLength = listLength(lb);}
- ElemType e;//声明一个元素
- for(index=1;index<=lbLength;index++){//遍历lb
- getElem(lb,index,&e);//依次得到lb中的元素
- if(!locateElem(*la,e)){//检查是否在la中出现
- listInsert(la,++laLength,e);//没有出现则插入队尾,前自增!
- }
- }
- }
转载于:https://blog.51cto.com/fanaticssk/832534