早教吧作业答案频道 -->数学-->
已知两个链表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和分别表示两个...的网友还看了以下:
怎么用VB来统计合格率和优秀率就是输入了一堆成绩,题目的要求是要计算优秀率和合格率,大于等于85的 2020-05-14 …
匀速上升的物体合外力不做工,那重力势能为什么会增加合外力都不做工了,为啥机械能还会增加? 2020-05-16 …
A.通信,合作,协调B.计算,通信,合作C.计算,合作,协调D.计算,通信,协调 2020-05-26 …
把下面每一组算合合并为一个综合算式.①25+15=4040÷8=5综合算式:②24×4=96180 2020-06-21 …
英语翻译李时珍,字东璧,蕲州人.好读医书,医家《本草》,自神农所传止三百六十五种,梁陶弘景所增亦如 2020-06-26 …
(2013•德州模拟)钼是一种过渡金属元素,通常用作合金及不锈钢的添加剂,这种元素可增强合金的强度 2020-07-11 …
英语翻译为什么不增加合作商呢,只有有一家很容易被宰的,您不在中国,所以有时候中国的合作商报价高了您 2020-07-12 …
先想想下面的题哪些用笔算合适,哪些用计算器算合适,再计算.222222222÷9=(先想想下面的题 2020-07-16 …
根据合同法的规定,下列合同属于无名合同的是1买卖合同2租赁合同3旅游合同4增与合同根据传统民法理论 2020-07-25 …
租赁价格是每平米0.5元,每三年递增4%.合同期限是20年.请问怎样计算?计算公式是什么啊? 2020-11-06 …