各位大神!求解数据结构中用单向循环链表实现的约瑟夫环问题的解释!我们要答辩,拜托了!题在下面
程序源代码:#include<stdio.h>typedefstructNode{intnum;intpasword;structNode*next;}LinkList;...
程序源代码: #include<stdio.h> 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",&p->pasword); for(i=2;i<=n;i++) { q=(LinkList *)malloc(sizeof(LinkList)); if(q==0) return(0); printf("请输入第%d个人的密码:",i); scanf("%d",&q->pasword); 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",&m); printf("出列顺序为:"); while(p->next!=p) { for(i=1;i<m;i++) { q=p; p=p->next; } 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",&n); L=creat(n); fun(L); }
展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询