#include
Node,*LinkList;
Node* creat(LinkList LA,int n){ LinkList p1,p2;
int i,k=0;
p1=p2=(LinkList)malloc(sizeof(Node)); printf(\scanf(\for(i=n;i>0;--i) {
k=k+1; if(k==1) {
p1->num=k; LA=p1; }
else p2->next=p1; p2=p1;
if(i-1==0) break;
else{
p1=(LinkList)malloc(sizeof(Node)); p1->num=k+1;
scanf(\ }
}
p2->next=LA;
return LA; }
void JosephProblem(LinkList L,int n,int m){ LinkList p1,p2; int count=0;
int countPerson=0; p1=L; p2=L;
while(p2->next != L){ p2=p1;
p1=p1->next;
//构建链表
}
while(countPerson if(count==m){ printf(\打印出列密码出列序号 printf(\ m=p1->Cipher; p2->next=p1->next; //删除出列节点 p1=p1->next; count=0; //计数器归零 countPerson+=1; } else { p2=p1; //p2为前躯 p1=p1->next; //p1转向后继 } } } main() { //主函数 LinkList LA,head; int n,m; printf(\ scanf(\ //输入有几个人来参与 LA=(LinkList)malloc(sizeof(Node)); head=creat(LA,n); //构建链表 printf(\ scanf(\ //输入初始密码 printf(\printf(\ Cipher\\n\ JosephProblem(head,n,m); //解决约瑟夫环的问题 system(\system(\}
相关推荐: