假设利用两个线性表LA和 LB分别表示两个集合A和B(即:线性表中的数据元素就是集合中的成员),现要求一个新的集合A=A∪B。
要求对线性表作如下操作:扩大表LA,将LB中存在而LA中不存在的数据元素插入到表LA中去。只要依次取得LB中每个数据元素,按其值查找表LA,若不存在,则插入之。
要求:用伪码描述上述算法。
class seqlistA<t> extends Object
{protected Object[] elementA; //创建数组来存储线性表数组要足够大要能容纳扩增后的线性表LA
protected int n1; //线性表的长度
public void seqlist (int length){
this.elementA=new Object[length];// 初始化长度为length线性表
this.n1=0;
}
public int setn(int n){
return this.n1=n; //设置线性表的长度
}
public void set(int i,T x){ //用数组来存储线性表中的元素
//先判断元素是否符合条件
//在用数组来存储线性表的元素
}
public int size()
{
return this.n1;//返回线性表的长度
}
public T get(int i){
//返回线性表中第i个元素,如果i月结则返回null
}
public Object[] change (Object[] elementA,Object[] elementB,int n1,int n2){
//利用循环来遍历线性表LA,LB查找在LB中存在
//而在LA中不存在的 元素并插入线性表LA中
}
}
class seqlistB<t> extends Object
{
protected Object[] elementB; //创建数组来存储线性表
protected int n2; //线性表的长度
public void seqlist (int length){
this.elementB=new Object[length];// 初始化长度为length线性表
this.n2=0;
}
public int setn(int n){
return this.n2=n; //设置线性表的长度
}
public int size()
{
return this.n2;//返回线性表的长度
}
public T get(int i){
//返回线性表中第i个元素,如果i月结则返回null
}
public void set(int i,T x){ //用数组来存储线性表中的元素
//先判断元素是否符合条件
//在用数组来存储线性表的元素
}
}