📄 123.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node *next;
} ListNode;
typedef ListNode *LinkList;
void main()
{
LinkList R;
int n,k;
LinkList initRing(int n,LinkList R);
LinkList DeleteDeath(int n,int k,LinkList R);
printf("总人数n=,报数上限k=");
scanf("%d%d",&n,&k);
R=initRing(n,R);
R=DeleteDeath(n,k,R);
}
/* 建立单循环链表 */
LinkList initRing(int n,LinkList R)
{
ListNode *p,*q;
int i;
R=q=(ListNode *)malloc(sizeof(ListNode));
for (i=1;i<n;i++) {
p=(ListNode *)malloc(sizeof(ListNode));
q->data=i; q->next=p;q=p;
}
p->data=n; p->next=R;R=p; return R;
}
LinkList DeleteDeath(int n,int k,LinkList R)
{
int i,j;
ListNode *p,*q;
p=R;
for(i=1;i<=n;i++)
//删除结点
for(j=1;j<=k-1;j++) //沿链前进k-1步
p=p->next;
q=p->next;
p->next=q->next; //删除q指向的结点
printf("%4d",q->data);
if (i%10==0) printf("\n");
free(q);
}
printf("\n");
R=p;return R;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -