缺的程序怎么填
设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…如此反复直到所有人全部出列为止。对于给定的n,s和m,求出按出列次序得到的n个人员的序列(要求用链表加以实现)。求各位大神帮忙!
#include<cstdlib>
#include<iostream>
using namespace std;
typedef struct Lnode
{
int data;
struct Lnode *next;
}Lnode,*Linklist;
void Creatlist_tail(Linklist &h,int n)
{
Linklist r,s;
int i;
for(i=1;i<=n;i++)
{
s=new Lnode;
s->data=i;
if(i==1)
r=h=s;
else
{
r->next=s;
r=s;
}
}
r->next=h;
}//尾插法创建不带头结点的循环单链表
void printlist(Linklist h)
{
cout<<p->data<<endl;
free(p);
}
int main()
{int n,s,m;
Linklist h;
cout<<"请输入人数:";
cin>>n;
cout<<"第几个人报数:";
cin>>s;
cout<<"第几个人出列:";
cin>>m;
Creatlist_tail(h,n);
printlist(h);
josephus(h,n,s,m);
reture 0;