阅读以下说明和流程图,填补流程图中的空缺。 [说明] 已知数组A[1:n]中各个元素的值都是非零整数,其中有些元素的值是相同的(重复)。为删除其中重复的值,可先通过以下流程图找出所有的重复值,并对所有重复值赋0标记之。该流程图采用了双重循环。 处理思路:如果数组A某个元素的值在前面曾出现过,则该元素赋标记值0。例如,假设数组A的各元素之值依次为2,5,5,1,2,5,3,则经过该流程图处理后,各元素之值依次为2,5,0,1,0,0,3。 [流程图] 
阅读以下说明和C函数,填补C函数中的空缺。 [说明] 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。 例如,单链表LA、LB的示例如图中的(a)、(b)所示,删除与LB共有的元素后的LA如图中的(c)所示。
链表的结点类型定义如下: typedef struct Node int data; struct Node *next; Node, *LinkList; 函数SetDiff(LinkList LA,LinkList LB)的处理思路如下: (1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素; (2)在LB中进行顺序查找,查找与LA的当前元素相同者,方法是:令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止; (3)结束在LB表的一次查找后,若在LB申发现了与LA的当前元素相同者,则删除LA的当前元素,否则,保留LA的当前元素; (4)取LA的下一个元素为当前元素,重复(2)、(3),直到LA的表尾。 [C函数] void SetDiff(LinkList LA,LinkList LB) LinkList pre,pa,pb; /*pa用于指向单链表LA的当前元素结点,pre指向pa所指元素的前驱*/ /*pb用于指向单链表LB的元素结点*/ ______;/*丌始时令pa指向LA的第一个元素*/ pre=LA; while (pa) pb=LB->next; /*在LB中查找与LA的当前元素相同者,直到找到或者到达表尾*/ while(______) if(pa->data==pb->data) break; ______; if(!pb) /*若在LB中没有找到与LA中当前元素相同者,则继续考察LA的后续元素*/ pre=pa; pa=pa->next; else /*若在LB中找到与LA的当前元素相同者,则删除LA的当前元素*/ pre->next=______; free(pa); pa=______;
pa=LA->next
阅读以下说明和C函数,填补C函数中的空缺。 [说明] 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。 例如,单链表LA、LB的示例如图中的(a)、(b)所示,删除与LB共有的元素后的LA如图中的(c)所示。
链表的结点类型定义如下: typedef struct Node int data; struct Node *next; Node, *LinkList; 函数SetDiff(LinkList LA,LinkList LB)的处理思路如下: (1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素; (2)在LB中进行顺序查找,查找与LA的当前元素相同者,方法是:令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止; (3)结束在LB表的一次查找后,若在LB申发现了与LA的当前元素相同者,则删除LA的当前元素,否则,保留LA的当前元素; (4)取LA的下一个元素为当前元素,重复(2)、(3),直到LA的表尾。 [C函数] void SetDiff(LinkList LA,LinkList LB) LinkList pre,pa,pb; /*pa用于指向单链表LA的当前元素结点,pre指向pa所指元素的前驱*/ /*pb用于指向单链表LB的元素结点*/ ______;/*丌始时令pa指向LA的第一个元素*/ pre=LA; while (pa) pb=LB->next; /*在LB中查找与LA的当前元素相同者,直到找到或者到达表尾*/ while(______) if(pa->data==pb->data) break; ______; if(!pb) /*若在LB中没有找到与LA中当前元素相同者,则继续考察LA的后续元素*/ pre=pa; pa=pa->next; else /*若在LB中找到与LA的当前元素相同者,则删除LA的当前元素*/ pre->next=______; free(pa); pa=______;
阅读以下说明和C函数,填补C函数中的空缺。 [说明] 函数SetDiff(LA,LB)的功能是将LA与LB中的共有元素从LA中删除,使得LA中仅保留与LB不同的元素,而LB不变,LA和LB为含头结点的单链表的头指针。 例如,单链表LA、LB的示例如图中的(a)、(b)所示,删除与LB共有的元素后的LA如图中的(c)所示。
链表的结点类型定义如下: typedef struct Node int data; struct Node *next; Node, *LinkList; 函数SetDiff(LinkList LA,LinkList LB)的处理思路如下: (1)从LA的第一个元素结点开始,令LA的第一个元素为当前元素; (2)在LB中进行顺序查找,查找与LA的当前元素相同者,方法是:令LA的当前元素先与LB的第一个元素进行比较,若相等,则结束在LB中的查找过程,否则继续与LB的下一个元素比较,重复以上过程,直到LB中的某一个元素与LA的当前元素相等(表明查找成功),或者到达LB的表尾(表明查找失败)为止; (3)结束在LB表的一次查找后,若在LB申发现了与LA的当前元素相同者,则删除LA的当前元素,否则,保留LA的当前元素; (4)取LA的下一个元素为当前元素,重复(2)、(3),直到LA的表尾。 [C函数] void SetDiff(LinkList LA,LinkList LB) LinkList pre,pa,pb; /*pa用于指向单链表LA的当前元素结点,pre指向pa所指元素的前驱*/ /*pb用于指向单链表LB的元素结点*/ ______;/*丌始时令pa指向LA的第一个元素*/ pre=LA; while (pa) pb=LB->next; /*在LB中查找与LA的当前元素相同者,直到找到或者到达表尾*/ while(______) if(pa->data==pb->data) break; ______; if(!pb) /*若在LB中没有找到与LA中当前元素相同者,则继续考察LA的后续元素*/ pre=pa; pa=pa->next; else /*若在LB中找到与LA的当前元素相同者,则删除LA的当前元素*/ pre->next=______; free(pa); pa=______;
阅读以下说明和流程图,填补流程图中的空缺。 [说明] 本流程图用于计算菲波那契数列a1=1,a2=1,an=an-1+an-2,|n=3,4,...的前n项(n≥2)之和S。例如,菲波那契数列前6项之和为200计算过程中,当前项之前的两项分别动态地保存在变量A和B中。 [流程图] 
2或A+B或其等价形式
阅读以下说明和流程图,填补流程图中的空缺。 [说明] 本流程图用于计算菲波那契数列a1=1,a2=1,an=an-1+an-2,|n=3,4,...的前n项(n≥2)之和S。例如,菲波那契数列前6项之和为200计算过程中,当前项之前的两项分别动态地保存在变量A和B中。 [流程图] 