selectkingofmonkey.cpp
来自「1、猴子选大王 2、约瑟夫环 3、迷宫求解 4、回文游戏 5、地图四染色」· C++ 代码 · 共 68 行
CPP
68 行
// SelectKingOfMonkey.cpp : Defines the entry point for the console application.
//
#include <stdio.h>
#include <stdlib.h>
typedef struct listnode{
int data;
struct listnode * next;
}LNode,* LinkList;
void main()
{
LinkList R=NULL;
int n,k;
LinkList CreatList(int n,LinkList R);
void SelectKing(int,int,LinkList);
printf("输入总人数n和报数k:");
scanf("%d%d",&n,&k);
R=CreatList(n,R);
SelectKing(n,k,R);
}
LinkList CreatList(int n,LinkList R)//建n个节点的循环链表
{
LNode *p,*q;
int i;
R=q=(LNode *)malloc(sizeof(LNode));
for(i=1;i<n;i++){
p=(LNode *)malloc(sizeof(LNode));
q->data=i;
q->next=p;
q=p;
}
p->data=n;
p->next=R;
R=p;
return R;
}
void SelectKing(int n,int k,LinkList R)
{
int i,j;
LNode *p,*q;
p=R;
for(i=1;i<n;i++){
for(j=1;j<k;j++)
p=p->next;//报数
q=p->next;//从链表中删除
p->next=q->next;
printf("%4d",q->data);
if(i%10==0)printf("\n");
free(q);
}
printf("%4d",p->data);
printf("\n");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?