void main() { int num;//孩子总数 int interval;//抽选号码 cout<<"请输入孩子总数:"; cin>>num; cout<<"请输入抽选号码:"; cin>>interval;
Children *josephus = new Children[num];//设置圈的起点指针,并动态开辟堆空间用于存储数据
Children *point = josephus;//用于初化链表的指针,起始地址与josephus指针相同
for(int i=1;i<=num;i++) { point -> number = i; point -> next = josephus + i % num;//利用+1取模的方式设置节点的next指针,当到最后的时候自动指向到第一个,形成环链 point = point->next;//将位置移到下一饿节点也就是下一个小孩的位置 }
show(point,num);
Children *cut_point; point=&josephus[num-1];//把起始指针设置在最后一个节点,当进入循环的时候就会从0开始,这样就好让不需要的节点脱离