对于不同的应用,线性表的基本操作是不同的,上述操作是最基本的,对于实际问题中涉及关于线性标的更复杂操作,完全可以用这些操作的组合来实现。
比如,要实现两个线性表集合A和B的并集操作。即要使得集合A=A并B。说白了,就是把存在集合B中但不存在集合A中的数据元素插入A中即可
仔细分析一下这个操作,发现我们只要循环集合B中的每个元素,判断当前元素是否存在集合A中,若不存在,则插入A中即可。思路应该是很容易想到的。
我们假设La表示集合A,Lb表示集合B,则实现的代码如下
void unionL(List *La,List Lb)/*将所有的在线线性表Lb中但不在La中的数据元素插到La中*/
{
int La_len,Lb_len,i;
ElemType e;/*声明与La和Lb相同的数据类型*/
La_len=ListLength(*La);/*求线性表的长度*/
Lb_len=ListLength(Lb);
for(i=1;i<=Lb_len;i++){
GetElem(Lb,i,&e);/*取Lb中第i个数据类型赋给e*/
if(!LocateElem(*La,e)){/*La中不存在和e相同数据元素*/
ListInsert(La,++La_len,e);/*插入*/
}
}
}