65,211
社区成员
发帖
与我相关
我的任务
分享
void difference(SLinkList &space,int &S)
{
//依次输入集合A和B的元素,在一维数组space中建立表示集合(A-B)并(B-A)
//的静态链表,S为其头指针。假设备用空间足够大,space[0].cur为其头指针
InitSpace_SL(space); //初始化备用空间
S=Malloc_SL(space); //生成头结点
int r,i;
r=S; //r指向S的当前最后的结点
ElemType m,n,b;
scanf(m,n); //输入A和B的元素个数
for(int j=1;j<=m;++j)//建立集合A的链表
{
i=Malloc_SL(space); //分配结点
scanf(space[i].data); //输入A的元素值
space[r].cur=i;
r=i;
}//for
space[r].cur=0; //尾结点的指针为空
for(int j=1;j<=n;++j)
{
scanf(b);
int p=S;
int k;
k=space[S].cur;//K指向集合A中第一个结点
while(k!=space[r].cur && space[k].data!=b)//在当前表查找
{
p=k;
k=spcae[k].cur;
}//while;
if(k==space[r].cur)
{
//当前表中不存在改元素,插入在r所指结点之后,且r
//的位置不变
i=Malloc_SL(space);
space[[i].data=b;
space[i].cur=space[r].cur;
space[r].cur=i;
}//if
else
{ //该元素已在表中,删除之
space[p].cur=space[k].cur;
Free_SL(space,k);
if(r==k)
{
r=p;
}
}//else
}//for
} //difference
ElemType m,n,b;
scanf(m,n); //输入A和B的元素个数
ElemType m,n,b; //这里m,n是两个自定义的类型,看你怎么定义了,如果你的是语言的基本类型的话
//可以正常按照scanf()函数输入,但是如果是类类型,就不能用他输入了.
scanf(m,n); //按照他们定义的类型录入,即默认类型输入;