线性表La与Lb合并。
输入:两个线性表La和Lb.
过程:循环集合B中的每个元素,判断当前元素是否存在A中,若不存在,则插入到A中即可。
输出:合并后的线性表La。
代码如下
#include
using namespace std;
#define MAXSIZE 100
#define ElemType int
typedef struct
{
ElemType Data[MAXSIZE];
int length;
}List;
void GetElem(List *La, int i,ElemType *e)
{
*e = La->Data[i];
}
int LocateElem(List *La,ElemType e)
{
for(int i=0;ilength;i++)
if(e == La->Data[i])
return 1;
return 0;
}
void ListInsert(List* La, int e_loc, ElemType e)
{
La->Data[e_loc] = e;
La->length++;
}
void Union(List *La, List *Lb)//核心代码
{
int La_len = La->length,Lb_len = Lb->length;
int i=0;
ElemType e;
for(i=0; i
{
GetElem(Lb,i,&e);
if(!LocateElem(La,e))
ListInsert(La,La_len++,e);
}
}
int main()
{
List La,Lb;
La.length = 10;
Lb.length = 13;
int i=0;
for(i=0;i<10;i++)
{
La.Data[i] = i*i;
}
for(i=0;i<13;i++)
{
Lb.Data[i] = i*2;
}
i=0;
while(i
{
cout<
i++;
}
cout<
i=0;
while(i
{
cout<
i++;
}
cout<
Union(&La,&Lb);
i=0;
while(i
{
cout<
i++;
}
getchar();
}
运行结果