已知集合A和B的元素分别用不含头结点的单链表存储,函数difference(
)用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。
链表结点的结构类型定义如下:
struct node
{
int elem;
node* next;
};
void difference(node** LA , node* LB)
{
node
*pa , *pb , *pre , *q;
pre = NULL;
1//1
while(pa) {
pb = LB;
while2 //2
pb = pb->next;
if3 //3
{
if(!pre)
*LA = 4 ;
//4
else
5 = pa->next;
//5
q = pa;
pa = pa->next;
free(q);
}
else {
6 ; //6
pa = pa->next;
}
}
}