《约瑟夫环单循环链表的实现》由会员分享,可在线阅读,更多相关《约瑟夫环单循环链表的实现(2页珍藏版)》请在金锄头文库上搜索。
1、程序源代码: #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; /*使链表尾指向链表头 形成循环链表*/
2、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);