【说明】 已知集合A和B的元素分别用不含头结点的单链表存储,函数Difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10, 20,15,25,30},集合B={5,15,35,25},如图(a)所示,运算完成后的结果如图(b)所示。
链表结点的结构类型定义如下: typedef struct Node{ ElemType elem; struct Node *next; }NodeType;【C函数】 void Difference(NodeType **LA,NodeType *LB) { NodeType *pa, *pb, *pre, *q; pre=NULL; (1) ; while (pa) { pb=LB; while( (2) ) pb=pb->next; if( (3) ) { if(!pre) *LA= (4) ; else (5) =pa->next; q = pa; pa=pa->next; free(q); } else { (6) ; pa=pa->next; } } }