题目描述
已知n个人(以编号1,2,3,······,n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从K开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。试用C++编程实现。
思路分析(循环链表)
通过输入n,m,k 3个正整数,求出列的序列。这个问题采用的就是典型循环链表的数据结构,就是将一个链表的尾元素指针指向队首元素。
步骤如下:
建立一个具有n个链节点、无头节点的循环链表。
确定第一个报数人的位置。
不断从链表中删除链节点,知道链表为空。
代码如下:
#include <iostream>
#include <cst