约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
思路:用链表的方式实现约瑟夫环首先需要一个单环链表,定义一个指针指向头节点,从头节点开始报数,指针向后移,数到m的那个节点把它删除,接着从下一个节点开始重新报数,直到最后只剩下一个节点,打印该节点的值。
- 代码实现:
LinkNode* JosephCycle(LinkNode* head, size_t food)
{
if(head==NULL){
//空链表
return