欢迎来到天天文库
浏览记录
ID:44814590
大小:27.41 KB
页数:3页
时间:2019-10-29
《单链表实现约瑟夫问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、单链表解决约瑟夫问题代码实现:#include#includetypedefintDataType;typedefstructNode{DataTypedata;structNode*next;}ListNode,*LinkList;LinkListCreateCycList(intn){LinkListhead=NULL;ListNode*s,*r;inti;for(i=1;i<=n;i++){s=(ListNode*)malloc(sizeof(ListNode));s->data=i;s->next=NULL;i
2、f(head==NULL)head=s;elser->next=s;r=s;}r->next=head;returnhead;}voidDisplayCycList(LinkListhead){ListNode*p;p=head;if(p==NULL){printf("该链表是空表");return;}while(p->next!=head){printf("%2d",p->data);p=p->next;}printf("%2d",p->data);}voidJosephus(LinkListhead,intn,intm,intk){ListNode
3、*p,*q;inti;p=head;for(i=1;inext;}while(p->next!=p){for(i=1;inext;}q->next=p->next;printf("%2d",p->data);free(p);p=q->next;}printf("%2d",p->data);}voidmain(){LinkListh;intn,k,m;printf("输入环中人的个数,n=");scanf("%d",&n);printf("输入开始报数的序号,k=");scanf("%d
4、",&k);printf("报数为m的人出列,m=");scanf("%d",&m);h=CreateCycList(n);Josephus(h,n,m,k);}
此文档下载收益归作者所有