// 设有N个人围坐一圈并按顺时针方向从1到N编号,从第S个人开始进行1到M报数,
// 报到第M个人时,此人出圈,再从他的下一个人重新开始1到M的报数,
// 如此进行下去直到所有的人都出圈为止,打印出圈次序。
// 实现方法:循环链表(包括链表的创建和结点的删除)
#include
#include
#include
//// 定义链表节点
//typedef struct node
//{
// int data;
// struct node *next;
//}linklist;
//
//// 创建循环链表(后插法)
//linklist *createhrear(int t)
//{
// int i = 2;
// linklist *head *rear *r;
//
// head = (linklist *)malloc(sizeof(linklist));
// head->data = 1;
// rear = head;
//
// while(i<=t)
// {
// r = (linklist *)malloc(sizeof(linklist));
// r->data = i;
// rear->next = r;
// rear = r;
// i++;
// }
// rear->next = head;
// return(head);
//}
//
//
//// 输入:n 游戏总人数
//// s 报数的起始编号
//// m 报数的数值
//// 输出:p 指向长度为n的数组,出圈次序保存在p指向的数组中
//void circle_sort(int n
评论
共有 条评论