免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宁德市人民医院国内外先进医院运营模式比较研究试题
- 安全教育题库人文社科及答案解析
- 三明市中医院毒性中药管理考核
- 南昌市中医院儿科患者超声考核
- 浙江护理招聘题库电子版及答案解析
- 生产员安全培训考试题库及答案解析
- 连云港市人民医院修复体戴入与调整考核
- 基础护理学题库语音及答案解析
- 绍兴市中医院心血管内科住院医师晋升主治医师必修病例题库
- 湖州市人民医院放疗急诊处理能力考核
- 2025年贵州省遵义市辅警考试真题及答案
- 电动葫芦安全操作培训
- 信息运维基础知识培训课件
- 防暴雪安全培训记录课件
- 2026届湖南省九校联盟高三上学期9月第一次联考生物试卷
- 2025至2030中国电缸行业市场深度调研及发展前景与投资前景预测报告
- 2025年贵州磷化(集团)有限责任公司校园招聘370人笔试参考题库附带答案详解
- 智慧养老APP创新创业项目商业计划书
- 2025至2030中国航空运动行业产业运行态势及投资规划深度研究报告
- (正式版)DB33∕T 1431-2025 《公路固化土路基施工规范》
- 社会科学研究方法 课件 第7-12章 调查研究-撰写研究报告
评论
0/150
提交评论