void Output(LinkList *L, int m, int n)
{
Node *p, *q;
int i = 1;
p = (*L);
printf("输出出对序列:");
while (n)
{
while (i != m)
{
q = p;
p = p->next;
i++;
}
printf("%-3d",p->data);
m = p->password;
q->next = p->next;
free(p);
p = q->next;
i = 1;
n--;
}
///////////////////////////////////////////////////////
//下面是别人用for循环的 其实和我用while循环差不多
//但别人在处理删除一个节点的方法以前没看到过 值得学习
// int i,j;
// Node *p,*q;
//
// p = (*L);
// for (j = 1; j <= n; j++)
// {
//
// for(i = 1; i<m ;i++, p = p->next);
// m = p->password;
// printf("%d\n",p->data);
// p->data = p->next->data;
// p->password = p->next->password;
// q = p->next;
// p->next = p->next->next;
// free(q);
// }
//////////////////////////////////////////////////////
printf("\n");
}
int main(void)
{
LinkList L;
int n, m;
printf("请输入人数:");
scanf("%d", &n);
getchar();
CreatLinkList(&L, n);
printf("请输入第一个报号数:");
scanf("%d",&m);
Output(&L, m, n);
system("pause");
return 0;
}