📄 约瑟夫问题-链表.cpp
字号:
#include<stdio.h>
#include<malloc.h>
typedef struct queue{
int num;
struct queue *next;
}Queue;
void main(){
int n,s,m,i;
Queue *p,*h,*x;
scanf("%d,%d,%d",&n,&s,&m);
h=(Queue *)malloc(sizeof(Queue));
h->num=s;h->next=NULL;p=h;
for(i=1;i<n;i++){
x=(Queue *)malloc(sizeof(Queue));
x->num=(s+i)%n;x->next=NULL;
if(x->num==0) x->num=n;
p->next=x;p=p->next;
}
x->next=h;p=x;
while(h->next!=h){
for(i=1;i<m;i++){
p=h;h=h->next;
}
printf("%d ",h->num);
p->next=h->next;
free(h);
h=p->next;
}
printf("%d\n",h->num);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -