赞助商

MOST RECENT NEWS - WE MOMENTARILY RENEW

13
      在网上闲逛,看到有一道题目如下:
    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/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

7 条评论 to “java链表实现约瑟夫算法”

&^&   2008/11/17 09:43
我添加的是数组名__personlist
String[] _personlist={"qq","ww","ee","rr","tt","yy","uu","ii","pp","aa"};
&^&   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实例。
&^&   2008/11/14 10:31
jp.doLogic(_personlist.length);  是剔除最后队列中最后一个   我执行了以后  经过那个while(limit>1)之后  总是剔除最后一个
博爱老头 回复于 2008/11/14 13:23
我的程序测试过了的,你再检查检查吧。
&^&   2008/11/13 17:14
你的那个int  _persion=4 是定义开始第一个人的位置吗?然后删除的位置是第几个人,在数组中又是哪个位置?
博爱老头 回复于 2008/11/13 23:02
不是,是第几个人被踢出去。
&^&   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
没有看懂你的意思
&^&   2008/10/30 14:13
假如转过了一圈  转到第一个位置的后面去了  以前的第一个数的位置会移动吗  我看了几遍了  还是看不懂
博爱老头 回复于 2008/10/30 16:08
移动只是个说法,关键是指针的变换。
nanber1   2008/08/27 11:41
不错!学习了
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称  [注册]
密码  [游客无需密码]
网址
电邮
               

 

©2007-2012 IcNote.COM Theme by Youth work room