单循环链表类的应用 以下是一个不全的c++的程序,请补全使其能运行,万分感谢!!!!
题目:设有n 个人围成一个圆圈,任意给出一个正整数m ,从第一个人开始记数,数到第m 个人被从圆圈中去除。问最后剩下的是哪个人?
程序如下: #include"CirList.h" #include"iostream" template<class T> void Josephus(CirList<T>&CList,int n,int m) { ListNode<T> *p; cout<<"删除次序依次为:"<<endl; CList.Reset(-1); for(int i=0;i<n-1;i++) { for(int j= 0;j<m-1;j++) { p=CList.Next(); if(CList.EndOfList())p=CList.Next() } if(CList.NextEndOfList())p=CList.Next() cout<<"删除第"<<CList.DeleteAfter()<<"人"<<endl; } cour<<"最后剩下的是:第"<<CList.GetData(0)<<"个人"<<endl; } void main(void)
{ CirList<int>myCirList; int n,m; cour<<"输入n:"; cin>>m; for(int i=0;i<n;i++)myCirList.Insert(i+1,I); cour<<"人员编号依次为:"; ListNode<int>*p=myCirList.Reset(); while(!myCirList.EndOfList()) { cour<<p->data<<""; p=myCirList.Next(); ) cour<<endl; josephus(myCirList,n,m); }