一、并集代码:
void unionL(List *La,List Lb){
int La_length,Lb_length,i;
ElemType e;
La_len=ListLength(La);
Lb_len=ListLength(Lb);
for(i=1;i<=Lb_len;i++){
//将链表Lb第i个元素赋值给e
GetElem(Lb,i,&e);
//如果链表La中不存在值为e的元素则添加
if(!LocateElem(*La,e)){
ListInsert(La,++La_len,e);
}
}
}
**二、获取元素**
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
//Status是函数类型,其值是函数结果的状态代码,如OK等。
//初始条件:顺序线性表已经存在,1<=i<=L.ListLength(L)
//操作结果用e返回L中第i个元素的值
Status GetElem(SqList L,int i,ElemType e)
{
if(L.length==0||i<1||i>L.length)
{
return ERROR;
}
*e=L.data[i-1];
return OK;
}
``
**## 三、插入数据e ##`**
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
//Status是函数类型,其值是函数结果的状态代码,如OK等。
//初始条件:顺序线性表已经存在,1<=i<=L.ListLength(L)
//操作结果:第i个位置之前插入了新元素e;L长度加1
Status ListInsert(SqList L,int i,ElemType e)
{
int k;
//线性表已满
if(L->length==MAXSIZE){
return ERROR;
}
//i不在线性表范围内
if(i<1||i>L->length+1)
{
return ERROR;
}
if(i<=L->length+1){
for(k=L->length-1;k>=i-1;k--)
{
L->data[k+1]=L->data[k];
}
}
L->data[i-1];
L->length++;
return OK;
}