早教吧作业答案频道 -->数学-->
已知两个链表A和分别表示两个集合,其元素递增排列,请设计算法求出A与B的差集,并存放在A中,同时返回该集合元素的个数.
题目详情
已知两个链表A和分别表示两个集合,其元素递增排列,请设计算法求出A与B的差集,并存放在A中,
同时返回该集合元素的个数.
同时返回该集合元素的个数.
▼优质解答
答案和解析
int purge_L(LinkList &La,List Lb)
{ //找出有序单链表La和Lb中不同的元素,存放在La中,返回La中元素个数
LNode *pa,*pb,*p,*deb;
int count=0;
p=La;
pa = La->next;
pb = Lb->next;
while ( pa && pb )
{
if ( pa->data < pb->data )
{ // 如果 pa->datadata
p->next = pa; p = pa; pa = pa->next;
}
else if(pa->data== pb->data)
{
p->next=pa->next;
free(pa);
pa=p->next;
deb=pb;
pb=pb->next;
free(deb);
}
else{
p->next = pb; p = pb; pb = pb->next;
}
count++;
}
// 插入剩余段
if(pa)
{
p->next = pa ;
while(pa)
{
count++;
pa=pa->next;
}
}else{
p->next = pb ;
while(pb)
{
count++;
pb=pb->next;
}
}
free (Lb); // 释放 Lb 的头结点
return count;
} // purge_L
{ //找出有序单链表La和Lb中不同的元素,存放在La中,返回La中元素个数
LNode *pa,*pb,*p,*deb;
int count=0;
p=La;
pa = La->next;
pb = Lb->next;
while ( pa && pb )
{
if ( pa->data < pb->data )
{ // 如果 pa->datadata
p->next = pa; p = pa; pa = pa->next;
}
else if(pa->data== pb->data)
{
p->next=pa->next;
free(pa);
pa=p->next;
deb=pb;
pb=pb->next;
free(deb);
}
else{
p->next = pb; p = pb; pb = pb->next;
}
count++;
}
// 插入剩余段
if(pa)
{
p->next = pa ;
while(pa)
{
count++;
pa=pa->next;
}
}else{
p->next = pb ;
while(pb)
{
count++;
pb=pb->next;
}
}
free (Lb); // 释放 Lb 的头结点
return count;
} // purge_L
看了 已知两个链表A和分别表示两个...的网友还看了以下:
集合元素个数,集合m={m|m=9k+1,k∈N星,且100≤m≤200}中的元素的个数为.怎么推 2020-05-16 …
通过一淘网买成倍数的东西怎么返集分宝比如我通过一淘网买一个东西,这个东西的返利是10集分宝,那么我 2020-06-18 …
集合有几个问题不懂的.如果集合A的任何一个元素都是集合B的元素,我们就说集合A包含与集合B,或集合 2020-06-19 …
1、“空集的元素个数为零”这名话对吗?这是一道选择题:1、空集没有子集2、空集是任何一个集合的真子 2020-06-22 …
关于子集个数问题问下,假如一个集合A={1,2,3,4,5,6,7,8,}那么含有其中2个元素的子 2020-07-08 …
对于正整数集合(,),如果去掉其中任意一个元素()之后,剩余的所有元素组成的集合都能分为两个交集为 2020-07-29 …
已知集合A和集合B各含12个元素,AB交集含有4个元素,试求同时满足:(1)C属于AB并集且C中含 2020-07-30 …
已知集合M有3个真子集,集合N有7个真子集,那么M并N的元素个数为A.有5个元素B.至多有5个元素 2020-08-01 …
已知集合M有3个真子集,集合N有7个真子集,那么M∪N的元素个数为()A.有5个元素B.至多有5个 2020-08-01 …
骆驼运萝卜问题,返回不吃萝卜!有个商人有头骆驼和3000个萝卜他现在从沙漠要走到集市卖萝卜沙漠离集市 2020-12-29 …