list sort( s, j ) list s; int j; { int i; list head[M], t; struct rec aux; extern list Last; if (s==NULL) return(s); if ( s->next == NULL ) {Last = s; return(s);} if ( j>D ) { for (Last=s; Last->next!=NULL; Last = Last->next); return( s ); } for (i=0; ik ); t = s; s = s->next; t->next = head[i]; head[i] = t; } /* sort recursively */ t = &aux; for (i=0; inext = sort( head[i], j+1 ); t = Last; } return(aux.next); }