C++版数据结构把线性表A和B合
Void merge_list(List la,List lb,List& lc)
{//将表b插在表a后面,形成新表lc
int i; //循环变量
int k; //表c的位置变量
la。 len=ListLength(la); //表a的长度
lb。len=ListLength(lb); //表b的长度
//先插入表a
for(i=1;i=1;i++)
{GetElem(pl,i,e);
ListInsert(temp,++k,e);
}//for
ClearList(&pl);
k=0;
for(int i=1;i<=temp。 len;++i)
{GetElem(temp,...全部
Void merge_list(List la,List lb,List& lc)
{//将表b插在表a后面,形成新表lc
int i; //循环变量
int k; //表c的位置变量
la。
len=ListLength(la); //表a的长度
lb。len=ListLength(lb); //表b的长度
//先插入表a
for(i=1;i=1;i++)
{GetElem(pl,i,e);
ListInsert(temp,++k,e);
}//for
ClearList(&pl);
k=0;
for(int i=1;i<=temp。
len;++i)
{GetElem(temp,i,&e);
ListInsert(pl,++k,e);
}//for
}
Void merge_list(List la,List lb,List& lc)
{/*删除线性表中重复的记录。
算法基本思想:我们采取逐个比较的方法。先把表a插入表c,每插入一个元素时(第一个除外),与表c元素比较(”遍历”)是否相等,然后同样的将表b插入*/
int i=0,k=0;
GetELem(la,++i,&e);
ListInsert(&lc,++k,e);
for(i=1;i<=k;i++) //k为表c中元素个数
{ if(k<=la。
len)
GetELem(la,k+1 ,&ea);
else break;
GetELem(lc,i,&ec);
bool equal=(ea==ec);
if(!equal)
ListInert(&lc,++k;ea);
}//for
//下面同样将表b插入表c中
bool equal;
for(int j=1;j<=lb。
len;j++)
{ GetELem(lb,j,&eb);
for(i=1;i<=k;++i)
{ GetELem(lc,i, &ec)
equal=(eb==ec);
if(!equal) //如果不等
ListInsert(&lc,++k;eb);
}//for
}//外层for
}//merge_list
这是顺式存储的
参考书:严蔚敏版数据结构
。
收起