| Posted in JAVA技术 @ 2007/04/13 12:04 by 博爱老头
      在网上闲逛,看到有一道题目如下:
    n个人围成一圈,每人有一个各不相同的编号,选择一个人作为起点,然后顺时针从1到k数数,每数到k的人退出圈子,圈子缩小,然后从下一个人继续从1到k数数,重复上面过程。求最后推出圈子的那个人原来的编号。
     这就是经典的约瑟夫环问题啊,所以,用java链表写了个。shy
     首先,创建一个链接节点类  LinkedNode.java



   然后 创建环形链表类:LinkedList.java

  最后一个测试类  Josephus.java


ok,输出结果如下:

王五 is removed!
刘九 is removed!
张三 is removed!
孙八 is removed!
李四 is removed!
老大 is removed!
周十 is removed!
老二 is removed!
钱七 is removed!
赵六 is the last element!


呵呵。。大家多提意见!smile

SRC下载(eclipse工程):
下载文件
这个文件只能在登入之后下载。请先 注册登入

作者:博爱老头@博爱老头的草屋
地址:http://www.icnote.com/post/30/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最新日志 随机日志 综合排行
  • 钻石壁纸+一首经典老歌
  • 国内3G牌照正式发放 扫盲...
  • 用java将本地化语言转换...
  • ThrottleLock ...
  • 新年快乐
  • [music] Sisse...
  • 可口的三文鱼 你不知道的故...
  • [music] 听歌时间-...
  • 平安夜 杂记
  • DOPOD S900 官方...
  • 中国“神龙”空天飞机惊艳亮...
  • 3G和中国电信
  • 南非发现天使完整骨骸,距今...
  • 暴雪将于2007年底发布s...
  • java链表实现约瑟夫算法
  • 现代版 愚公移山
  • 美国空袭巴铁是警报,伊朗真...
  • iPhone 3G国内上市...
  • 奥运直播表(完整版)
  • java numberFo...
  • java  msn机器人
  • JSTL详解
  • 终于在fc6下把TL-WN...
  • eXtremeTable的...
  • DES加密、解密字符串算法...
  • IDC sees $49 ...
  • eclipse 安装pyt...
  • 放假早起,听到熟悉经典的音...
  • 测试Issue管理利器JI...
  • Waiting for f...
  • 文章来自: 本站原创
    &^& Said,
    2008/11/17 09:43
    我添加的是数组名__personlist
    String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
    &^& Said,
    2008/11/14 16:55
    LinkedList.addLast(object object)怎么理解  我的程序说这里有错误
    Exception in thread "main" java.lang.NullPointerException
      at Josephus.LinkedList.addLast(LinkedList.java:76)
      at Josephus.Josephus.addNode(Josephus.java:69)
      at Josephus.Josephus.main(Josephus.java:81)
    博爱老头 回复于 2008/11/14 19:02
    你添加的对象是什么?这里应该是一个LinkedNode实例。
    &^& Said,
    2008/11/14 10:31
    jp.doLogic(_personlist.length);  是剔除最后队列中最后一个   我执行了以后  经过那个while(limit>1)之后  总是剔除最后一个
    博爱老头 回复于 2008/11/14 13:23
    我的程序测试过了的,你再检查检查吧。
    &^& Said,
    2008/11/13 17:14
    你的那个int  _persion=4 是定义开始第一个人的位置吗?然后删除的位置是第几个人,在数组中又是哪个位置?
    博爱老头 回复于 2008/11/13 23:02
    不是,是第几个人被踢出去。
    &^& Said,
    2008/11/12 14:18
    虽没怎么看懂  我按照你上面的写了  但结果不是这样的 我是这样写的数组
    int _persion=4;
    String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};

    结果是
    aa is removed
    qq is removed
    aa is removed
    the last removed is aa
    博爱老头 回复于 2008/11/12 15:10
    uplook
    没有看懂你的意思
    &^& Said,
    2008/10/30 14:13
    假如转过了一圈  转到第一个位置的后面去了  以前的第一个数的位置会移动吗  我看了几遍了  还是看不懂
    博爱老头 回复于 2008/10/30 16:08
    移动只是个说法,关键是指针的变换。
    nanber1 Said,
    2008/08/27 11:41
    不错!学习了
    分页: 1/1 第一页 1 最后页
    发表评论
    昵称
    密码 [ 游客无需密码 ]
    电邮
    网址
    打开HTML 打开UBB 打开表情 隐藏 记住我