循环链表实现约瑟夫环的问题

xiaoxiao2021-02-28  9

直接上代码:

#include<iostream>#include<stdlib.h>#include<stdio.h>#define ERROR 0;typedef struct Lnode{ int data; struct Lnode *link;}Lnode,*LinkList;void Josephus(int n,int k,int m){//n为总共的人数,k是第一个报数的人,m为数到的数 LinkList p,r,head,curr; p=(LinkList)malloc(sizeof(Lnode)); p->data=0; p->link=p; curr=p; for(int i=1;i<n;i++){ LinkList t=(LinkList)malloc(sizeof(Lnode)); t->data=i; t->link=curr->link; curr->link=t; curr=t; } r=curr; while(k--) r=p,p->link; while(n--){ for(int s=m-1;s--;r=p,p=p->link); r->link=p->link; printf("%d->",p->data); free(p); p=r->link; } }int mian(){ Josephus(13,4,1);}

转载请注明原文地址: https://www.6miu.com/read-2800266.html

最新回复(0)