约瑟夫环单循环链表的实现
程序源代码: #include typedef struct Node int num; int pasword; struct Node *next; LinkList; LinkList *creat(int n) LinkList *p,*q,*head; int i=1;head=p=(LinkList *)malloc(sizeof(LinkList);p->num=i; printf(“请输入第 1 个人的密码:“); scanf(“%d“,for(i=2;ipasword);q->num=i;p->next=q;p=q;p->next=head; /*使链表尾指向链表头 形成循环链表*/return head; void fun(LinkList *L) int m,i; LinkList *p=L,*q,*s; printf(“请输入 m 的初值:“); scanf(“%d“, printf(“出列顺序为:“); while(p->next!=p) for(i=1;inext; printf(“%5d“,p->num);m=p->pasword; s=p; q->next=p->next; p=p->next; free(s); printf(“%5d“,p->num); printf(“n“); main() LinkList *L; int n; printf(“请输入实验人数:“); scanf(“%d“, L=creat(n); fun(L);