void Collect(SLList *L,int i,ArrType f,ArrType e) /*Collect() function */ { int j,t; for(j=0;!f[j];j=Succ(j)); /*Succ()*/ L->r[0].next=f[j]; t=e[j]; while(j<RD-1) { for(j=Succ(j);j<RD-1&&!f[j];j=Succ(j)); if(f[j]) { L->r[t].next=f[j]; t=e[j]; }/*end of if*/ }/*end of while */ L->r[t].next=0; OutExample(L,i); /*Add Output Example function here */ }/*end of Collect() function */
void Collect(SLList &L,int i,ArrType f,ArrType e)//第i趟收集 { int j; SLCell *t; for(j=0;!f[j];j++);//找到第一个非空子表 L.H->next=f[j];//r[0].next指向第一个非空子表的第一个节点 t=e[j];//用t记录当前子表的最后一个节点 while(j<RD-1) { for(j=j+1;j<RD-1&&!f[j] ;j++);//找下一个非空子表 if(f[j]) { t->next=f[j]; t=e[j];//用t记录当前子表的最后一个节点 } } t->next=NULL;//t指向最后一个非空子表的最后一个节点 OutExample(L,i); }