• 回答数

    4

  • 浏览数

    298

暖暖冬日小兔子
首页 > 期刊论文 > 约瑟夫生死游戏毕业论文

4个回答 默认排序
  • 默认排序
  • 按时间排序

超级无敌暴暴

已采纳

用java写过一个,所以贴出来,你参考下,改为C++吧,我C++没学好所以不好意思了 嘻嘻public class child { /** * @author wubin * @time 8/31/2010 */ public static void main(String[] args) { cyLink cylink = new cyLink(); (5); (); (2); (2); (); (); }}class Children{ //定义孩子对象 int no; //定义抓住下一个孩子的节点 Children nextchild=null; //构造函数 public Children(int no) { ; }}class cyLink{ //指向第一个小孩的引用 Children firstchildren = null; Children temp = null; int len = 0; int k = 0; int m = 0; //初始化len public void Setlen( int len ) { = len; } //初始化k public void Setk( int k) { = k; } //初始化m public void Setm(int m) { = m; } //初始化链表 生成小孩 public void Creatchild() { for(int i=1; i<=len;i++) { //创建第一个小孩 if(i==1){ Children ch = new Children(i); =ch; = ch; }else { if(i==len) { Children ch = new Children(i); =ch; temp =ch; ; } else { Children ch = new Children(i); = ch; = ch; } } } } public void play() { //临时工 跑位抓人 Children temp = ; //先找到开始数数的人 for(int i=1;i

217 评论

橘子汽水2046

LinkList p;; /link,int k;*循环地删除队列结点*,m为出列者喊到的数 { / } p-;n最后被删除的元素是; for(int i=0;data);link; for(i=0;*使链表循环起来*,int m) /m-1,P-; p=p-;;i++) { p=(LinkList)malloc(sizeof(LNode)); /link,p-;ilt; } r-;n为总人数;link; p=p-;; p=list; p=r-; } ,k为第一个开始报数的人;i++) { r=p;* p为当前结点 r为辅助结点; ⒊不断地从链表中删除链结点; else r-;link=p; free(p),r; p-;data);,无头结点的循环链表;*建立循环链表*:%4dquot;ilt;*使p指向头节点*!=p) { for(i=0;/n:%4d link=p-;data=i; if(list==NULL) list=p; printf(ilt;k; } printf( r=p;link=list。 void JOSEPHUS(int n;*把当前指针移动到第一个报数的人*/ /i++) { r=p,指向p的前驱结点 list为头节点*/link解决问题的核心步骤,list:(程序的基本算法) ⒈建立一个具有n个链结点; ⒉确定第1个报数人的位置; while(p-,直到链表为空;被删除的元素

175 评论

上海阿稀

#includeusing namespace std;templatestruct LinkNode{ T data; LinkNode*link; LinkNode( T item) { data=item; link=NULL; }}; templateclass List{ public: List() //构造函数 { first=new LinkNode; first->link=first;//头尾相连,循环链表,用它可以让你数到最后一个人的时候,他的下一个人就是队伍的第一个家伙 } List(T x) { first=new LinkNode(x); first->link=first; } List(List&L); ~List(){} void Insert(int i,T x); T getHead(){return first->data;} LinkNode* getfirst(){return first;} void xiuf(LinkNode* a){first=a;} LinkNode*Locate(int i); protected: LinkNode*first;};templateList::List(List&L) //复制构造函数,就是用来复制{ T value; LinkNode*srcptr=(); LinkNode*destptr=first=new LinkNode; destptr->data=srcptr->data; while(srcptr->link!=first) { value=srcptr->link->data; destptr->link=new LinkNode(value); destptr=destptr->link; srcptr=srcptr->link; last=srcptr; } };templateLinkNode* List::Locate(int i) //搜索含数值为i的结点,就是找第i个顶点{ if(i<0)return NULL; LinkNode* current=first; int k=1; while(klink; k++; if(current==first)return NULL; } return current;};template void List::Insert(int i,T x) //添加顶点。。i是用来找到链表的末尾。。{ LinkNode* current=Locate(i); if(current==NULL)return; LinkNode*newNode=new LinkNode(x); if(newNode==NULL) //当前指针为空,未取到数据的值 { cout<<"存储分配错误!"<link=current->link; current->link=newNode;};templatevoid Josephus(List& Js,int n,int m){ LinkNode *p=(1),*pre; int i,j; for(i=1;i<=n/2;i++) //要扔入水里的人,一共是n/2=15人 { if(m==1) //如果没次只扔序号为1那个家伙,按顺序把每次第一个人扔下去 { cout<<"出列的人是:"<data<link; //这个用来让first指向当前first下一个家伙 (p->link); delete p; p=pre; } else { //从当前位置开始数m个人,这个人是p,pre是p的前一个家伙 for(j=1;jlink; } cout<<"出列的人是"<data<link=p->link; //如果是第一个家伙就把first改成first的下一个 if(p==())(p->link); //if(p=())(pre); delete p; p=pre->link; } }}void main(){ List clist(1); int i,n,m; cout<<"输入游戏者的人数和报数间隔:"<>n>>m; for(i=1;i

178 评论

进击的银酱

你好好求,我就告诉你~!

105 评论

相关问答

  • 李约瑟难题的论文题目

    学术堂整理了二十条中医学毕业论文题目,供大家参考:1.交融渗透 相得益彰--论中医学与中国传统文化的互动关系2.关于中医学学科建设的医史学思考3.中医学"卓越医

    兜兜兜尔 5人参与回答 2023-12-11
  • 生死场毕业论文

    Title: the women's consciousness in Xiao hong’s "field of life and death"Summary

    枫小High 3人参与回答 2023-12-10
  • 学生游戏论文题目

    [摘要] 毛泽东同志在给杂志的题词中写道:“要活动,要游戏,是儿童的天性。”这充分说明了孩子们对游戏有着特殊的感情。为使学生更好地掌握体育的基本知识、技术、技能

    rachelkong 4人参与回答 2023-12-12
  • 约瑟夫生死游戏毕业论文

    用java写过一个,所以贴出来,你参考下,改为C++吧,我C++没学好所以不好意思了 嘻嘻public class child { /** * @author

    暖暖冬日小兔子 4人参与回答 2023-12-09
  • 李约瑟难题历史论文参考文献

    李约瑟难题是英国学者李约瑟所提出的,其内容是:“尽管中国古代对人类科技发展做出了很多重要贡献,但为什么科学和工业革命没有在近代的中国发生?”李约瑟在1930年代

    Ares填词人 6人参与回答 2023-12-11