当前位置:文档下载 > 所有分类 > 高等教育 > 理学 > 有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员。现要求一个新的集合A=A∪B。
侵权投诉

有两个集合用两个线性表LA和LB表示即线性表中的数据元素即为集合中的成员。现要求一个新的集合A=A∪B。

例2-1 假设有两个集合A和B分别用两个线性表LA和LB表示,即:线性表中的数据元素即为集合中的成员。现要求一个新的集合A=A∪B。

//////////////////////////////////////////////////////////

上述问题可演绎为:

要求对线性表作如下操作:

扩大线性表LA,将存在于线性表LB中而不存在于线性表LA中的数据元素插入到线性表LA中去。

//////////////////////////////////////////////////////////

操作步骤:

1.从线性表LB中依次察看每个数据元素;

GetElem(LB,i)→e

2.依值在线性表LA中进行查访;

LocateElem(LA,e,equal( ))

3.若不存在,则插入之。

ListInsert(LA,n+1,e)

//////////////////////////////////////////////////////////

void union(List &La,List 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,equal()))

ListInsert(La,++La_len,e);

//La中不存在和e相同的数据元素,则插入之

}

}//union

//////////////////////////////////////////////////////////

#ifndef DSH

#define DSH

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

#define INFEASIBLE -1

#define OVERFLOW -2

//Status是函数的类型,其值是函数结果状态代码

typedef int Status;

typedef int ElemType;

#endif

//////////////////////////////////////////////////////////

#ifndef LISTH

#define LISTH

第1页

猜你喜欢

返回顶部