填空题

阅读以下函数说明和C语言函数,回答问题。
[说明]
函数Node *difference(A,B)用于求两个集合之差C=A-B,即当且仅当e是A中的一个元素,但不是B中的元素时,e是C中的元素。集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之间按递增排列。执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示其链表根据元素之值按递增排列。函数append()用于在链表中添加节点。
[C函数]
typedef struct node
int element;
struct node *link;
Node;
Node *A,*B,*C;
Node *append(last,e)
Node *last;
int e;
last->link=(Node *)malloc(sizeof(Node));
last->link->element=e;
return(last->link);
Node *difference(A,B)
Node *A,*B;
Node *c,*last;
C=last=(Node *)malloc(sizeof(Node));
while( (1) )
if(A->element<B->element)
last=append(last,A->element);
A=A->link:
else if( (2) )
A:A->link;
B:B->link;
elSe
(3)
while( (4) )
last=append(last,A->element);
A=A->link:
(5) ;
last=c;
c=c->link;
free(last);
return(c);

【参考答案】

(1) B->link (2) A->element==B->element (3) B=B->link
......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题