阅读以下函数说明和C语言函数,将应填入____处的字句写在答题纸的对应栏内。
【说明】函数Node*difference(A、B)用于求两个集合之差C=A-B,即当且仅当e是A中的一个元素,但不是B中的元素时,e是C中的元素。集合用有序链表实现,用一个空链表表示一个空集合,表示非空集合的链表根据元素之间按递增排列。执行C=A-B之后,表示集合A和B的链表不变,若结果集合C非空,则表示其链表根据元素之值按递增排列。函数append()用于在链表中添加节点。【C函数】
参考答案:
(1)B->link
(2)A->element==B->element
(3)B=B->link
(4)A->link!=NULL
(5)last->link=NULL
解析:本题用链表表示集合,通过比较链表的元素值判断集合的元素之间的关系。第一个while循环的条件是链表B指针小指向空,即空(1)应填"B->link"。由于A,B两集合都是按递增排列的,则如果A中的元素小于B中的元素,A中元素直接放入集合C中,集合A指向其下一个元素;如果A中的元素等于B中的元素,集合A,B分别指向下一个元素,即空(2)填"A->element==B->element";如果A中的元素大于B中的元素,集合B指向其下一个元素,即空(3)填"B=B->link"。第二个循环的条件是链表A指针不指向空时,将A中元素直接加入到C中,即窄(4)填"A->link!=NULL"。将链表C最后节点指针指向窄,即空(5)填"last->link=NULL"。