/*依次对键值的个位到高位逐位循环*/
for(i=0,factor=1,p=*h;i<KEYN;factor*=10,i++)
{
/*按键值的当前值将链表分拆成十个队列链表*/
for(j=0;j<10;j++) /*预置十个空链表*/
head[j]=NULL;
while(p)
{ /*将*p接到某队列链表*/
u=p->link; /*保护下一个表元的指针*/
j=(p->key/factor)%10; /*求表元键值的当前位*/
if(head[j]==NULL) /*按当前位值将*p接在对应队列的末尾*/
head[j]=p
else
tail[j]->link=p;
tail[j]=p;
p->link=NULL;
p=u; /*准备访问下一表元*/
}
/*将十个队列链表链接成一个链表*/