问答题

阅读以下说明和C函数,填补C函数中的空缺(1)~(5),将解答写在答题纸的对应栏内。 [说明] 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。 例如,单链表LA、LB的示例如图4-1中的(a)、(b)所示,删除与LB共有的元素后的LA如图4-1中的(c)所示。

函数SetDiff(LinkListLA,LinkListLB)的处理思路如下: (1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素。 (2)在LB中进行J顷序查找,查找与LA的当前元素相同考,方法是令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止。 (3)结束在LB表的一次查找后,若在LB中发现了与LA的当前元素相同者,则删除LA的当前元素,否则保留LA的当前元素。 (4)取LA的下一个元素为当前元素,重复(2)、(3),直到LA的表尾。

【参考答案】

(1) pa= LA->next
(2) pb,或pb!=0,或pb!=NULL
(3) pb= p......

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