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);
}
|