示例#1
0
文件: 81.c 项目: zyxstar/md_note
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);
}