void createHeader(int n,int m)
{
if (n == 0)
{
return;
}
Aheader = malloc(sizeof(struct Node));
Link p = Aheader;
Aheader->item = -1;
Aheader->next = Aheader;
int i = 0;
for (i = 0;i < n;++i)
{
p->next = malloc(sizeof(*p));
p = p->next;
p->item = rand()%10;
p->index = i;
p->next = Aheader;
}
printHeader(n);
p = Aheader;
while (p != p->next)
{
for (i = 0; i < m;)
{
p = p->next;
if (p->item == -1)
{
continue;
}
++i;
}
Link temp = p->next;
if (temp->item == -1)
{
temp = p->next->next;
p->next->next = temp->next;
}
else
{
p->next = temp->next;
}
n--;
free(temp);
if (n == 1)
{
break;
}
}
printf("\n");
}