欢迎来到天天文库
浏览记录
ID:35452385
大小:97.13 KB
页数:4页
时间:2019-03-24
《约瑟夫问题的研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、20081120203510803物电学院别必盼publicclasspapa{publicstaticvoidmain(String[]args){cyclinkcyc=newcyclink();cyc.setlen(lO);cyc.createlink();System.out.println(Hcreatesuccessful”);cyc.play(3,2);classperson)intnum;personnextperson;publicperson(intnum)/•上•上•上•上ef*■立
2、■立•匕•匕■立■立•匕■立•匕■上■上f彳.彳.彳.彳.彳.3、oid來修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会白动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.4.当定义一个类的时候,通常悄况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点5当4、一个类只定义了私有的构造函数,将无法通过new关键字來创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。******************************************************************************/{//创建循环链表实现方法就是定义了一个循环链this.num=num;classcyclink{表类personfirstperson;persontem;intlen;publicvoidsetlen5、(intlen){this.len=len;〃设置链表的长度为len〃创建指左长度len的对彖,并且分别给每个对象编号publicvoidcreatelink(){for(inti=l;i<=len;i++){personpapa=newperson(i);if(i==l){this.firstperson=papa;〃指定第一个对象的标识作为参考对象,不能改变!this.tem=papa;}else{if(i==len){tem.nextperson=papa;this.tem=papa;tem.ne6、xtperson=this.firstperson;/*对于最后创建的对象,要将它的nextperson变量指向第一个对象即firstperson标识的参考量这样就完美的创建了一个环形链表*/)else{tem.nextperson=papa;/*先将创建的对象地址赋给上一个对象的nextperson变量,这样就完成了一个对象向另一个对象的链接*/this.tem=papa;〃再将tem变量更新为当前创建对象的地址System.out.println("创建成员编号为:"+papa.num);}publ7、icvoidplay(intm,intn){persontemp;〃创建一个person类型的变量temp=this.firstperson;for(intj=l;j8、n变量即指向它自l2本身的地址咅/{System.out.println("最后留下来的成员编号为:"+temp.num);break;}else{System.out.println(n本次被删除的成员编号为:"+temp.nextperson.num);temp.nextperson=temp.nextperson.nextperson;/*将原木指向下一个对象的指示指向下一个对彖的下一个对彖,这样下一个对彖就会被系统回收*/temp=
3、oid來修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会白动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.4.当定义一个类的时候,通常悄况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点5当
4、一个类只定义了私有的构造函数,将无法通过new关键字來创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。******************************************************************************/{//创建循环链表实现方法就是定义了一个循环链this.num=num;classcyclink{表类personfirstperson;persontem;intlen;publicvoidsetlen
5、(intlen){this.len=len;〃设置链表的长度为len〃创建指左长度len的对彖,并且分别给每个对象编号publicvoidcreatelink(){for(inti=l;i<=len;i++){personpapa=newperson(i);if(i==l){this.firstperson=papa;〃指定第一个对象的标识作为参考对象,不能改变!this.tem=papa;}else{if(i==len){tem.nextperson=papa;this.tem=papa;tem.ne
6、xtperson=this.firstperson;/*对于最后创建的对象,要将它的nextperson变量指向第一个对象即firstperson标识的参考量这样就完美的创建了一个环形链表*/)else{tem.nextperson=papa;/*先将创建的对象地址赋给上一个对象的nextperson变量,这样就完成了一个对象向另一个对象的链接*/this.tem=papa;〃再将tem变量更新为当前创建对象的地址System.out.println("创建成员编号为:"+papa.num);}publ
7、icvoidplay(intm,intn){persontemp;〃创建一个person类型的变量temp=this.firstperson;for(intj=l;j8、n变量即指向它自l2本身的地址咅/{System.out.println("最后留下来的成员编号为:"+temp.num);break;}else{System.out.println(n本次被删除的成员编号为:"+temp.nextperson.num);temp.nextperson=temp.nextperson.nextperson;/*将原木指向下一个对象的指示指向下一个对彖的下一个对彖,这样下一个对彖就会被系统回收*/temp=
8、n变量即指向它自l2本身的地址咅/{System.out.println("最后留下来的成员编号为:"+temp.num);break;}else{System.out.println(n本次被删除的成员编号为:"+temp.nextperson.num);temp.nextperson=temp.nextperson.nextperson;/*将原木指向下一个对象的指示指向下一个对彖的下一个对彖,这样下一个对彖就会被系统回收*/temp=
此文档下载收益归作者所有