免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* * 作者:徐守威 * 功能:约瑟夫问题(丢手帕问题) * 具体问题:设编号为1,2,3.n的n个人围坐一圈,约定编号为k(1=k=n)的人从1开始 * 报数,数到m的那个人出列,它的下一位从一开始报数,报到m的那个人又出列,以此类推, * 直到所有人出列为止,如此产生一个出列编号的序列. * 解决方案:链表 */package com.jasxu;import java.io.*;public class T4 /* * param args */public static void main(String args)/ TODO Auto-generated method stubtryInputStreamReader isr=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(isr);System.out.println(请输入参加该游戏小孩的个数:);String joinNmu=br.readLine();System.out.println(请输入您想从编号为几的小孩开始报数?);String n1=br.readLine();System.out.println(请输入您想数到几的小孩出列?);String n2=br.readLine();int num1=Integer.parseInt(n1);int num2=Integer.parseInt(n2);int joinLen=Integer.parseInt(joinNmu);CycLink cyclink=new CycLink();cyclink.setLen(joinLen);cyclink.createLink();cyclink.setK(num2);cyclink.setM(2);cyclink.show();cyclink.play();catch(Exception e)e.printStackTrace();/构建各个孩子class Child/定义child的编号int no;/定义可以指向下一个的指针Child nextChild=null;/创建构造函数public Child(int no)/赋编号this.no=no;/构建一个环形链表class CycLink/先定义一个指向链表第一个小孩的引用/指向第一个小孩的引用,不能动Child firstChild=null;/定义一个游标,相当于跑龙套Child temp=null;/定义一个表示大小的的len,表示共有几个小孩int len=0;int k=0;int m=0;/构造函数,用来设置环形链表的大小public void setLen(int len)this.len=len;/设置m的值public void setM(int m)this.m=m;/设置从第几个人开始数数public void setK(int k)this.k=k;/游戏实现public void play()/设置跑龙套的小孩Child temp=this.firstChild;/1.找到开始数数的人for(int i=1;ik;i+)temp=temp.nextChild;while(this.len!=1)/2.数m下for(int j=1;jm;j+)temp=temp.nextChild;/3.找到要出圈的前一个小孩/定义一个2号跑龙套的人Child temp2=temp;while(temp2.nextChild!=temp)temp2=temp2.nextChild;/4.数完了过后将数到m的小孩退出圈temp2.nextChild=temp.nextChild;/让temp指向下一个数数的小孩temp=temp.nextChild;this.len-;/输出最后一个小孩System.out.println(最后出圈的小孩是:+temp.no+号小孩!);/初始化环形链表public void createLink()/统计有多少个孩子for(int i=1;i=len;i+)if(i=1)/首先创建第一个小孩Child ch=new Child(i);/将第一个孩子的应用交给firstChildthis.firstChild=ch;/同时也要将引用交给跑龙套用this.temp=ch;else/判断是否是创建最后一个小孩if(i=len)/继续创建小孩Child ch=new Child(i);/将temp的指针指向下一条地址的引用temp.nextChild=ch;/这条线相当于搭桥的线/桥答完后还要让temp指向刚刚创建的那个孩子temp=ch;/最后一个小孩的指针应指向头一个地址的引用temp.nextChild=this.firstChild;else/继续创建小孩Child ch=new Child(i);/将temp的指针指向下一条地址的引用temp.nextChild=ch;/这条线相当于搭桥的线/桥答完后还要让temp指向刚刚创建的那个孩子temp=ch;/打印该环形链表public void show()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年宿迁市烟草专卖局人员招聘考试参考试题及答案详解
- 2026年染料制造行业年度综合研究报告及未来五至十年合规风险与监管应对
- 2026年齐鲁股权交易中心有限公司人员招聘考试备考题库及答案详解
- 2026中国南航集团文化传媒股份有限公司社会招聘4人(第二批)考试备考试题及答案解析
- 2026年其他专用设备制造行业市场运营态势及发展前景报告及未来五至十年全链路优化与全场景覆盖
- 2026年中国石油北京销售分公司人员招聘考试备考题库及答案详解
- 2026年衡器制造行业竞争格局研究报告及未来五至十年风险挑战与应对策略
- 2026年重庆对外经贸集团有限公司人员招聘考试题库及答案详解
- 2026年中国石油锦西石化分公司人员招聘参考题库及答案详解
- 2026年锦州市烟草专卖局人员招聘考试参考试题及答案详解
- 2026年山东省考《申论》真题及答案解析(B卷)
- 中国广电山东网络有限公司2026年度市县公司招聘(145个)笔试历年常考点试题专练附带答案详解
- 2026北京急救中心第一批招聘备考考试题库含答案解析
- ICU危重患者呼吸机管理
- 社会语言学讲稿
- 乡统计站工作制度
- 医美销售技巧培训课件
- 托育食品安全课件
- 2025 初中一年级语文下册《台阶》细节描写作用课件
- 第1讲-创新思维概述
- 2025年氯代碳酸乙烯酯行业分析报告及未来发展趋势预测
评论
0/150
提交评论