约瑟夫问题链表CH12_1.用链表实现约瑟夫问题:这是17世-查字典问答网
分类选择

来自蒋馥的问题

  约瑟夫问题链表CH12_1.用链表实现约瑟夫问题:这是17世纪法国数学家加斯帕在《数的游戏问题》中讲的一个故事:15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余的人

  约瑟夫问题链表

  CH12_1.用链表实现约瑟夫问题:这是17世纪法国数学家加斯帕在《数的游戏问题》中讲的一个故事:15个教徒和15个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人转成一个圆圈,从第一个人开始报数,每数到第九个人就将他扔入大海,如此循环,直到仅余15个人为止。问题怎样的排法,才能使每次投入大海的都是非教徒。

1回答
2020-03-20 09:10
我要回答
请先登录
刘良

  这个是一个非常有趣的链表程序。

  链表一定要亲手实现,才会记得牢。所以就不给你发程序源代码了。给你一个思路。你可以自己试着实现,然后发给我,我帮你改改。

  首先,做一个30个节点的循环列表。

  每个节点需要有这么几个数据,自己的编号ID,是否已经被扔进海里DeadOrLive,下一个节点的指针Pointer。

  然后你从第一个节点开始,每循环15个节点,就将这个节点的”是否已经被扔进海里“设置为扔进去了。

  当然,你循环的时候,必须只循环没有被扔进海里的。

  循环15次之后,就可以了。

  然后把这个循环链表中的所有死了的节点的编号记录下来,就是非教徒的位置。

  希望能够帮助到你。

  可能一开始会觉得实现起来很费劲,无从入手,但是必须有这么一个痛苦的过程,你才能走的比别人更好。

  如果你还是只希望找个源代码的话,那么你就无视我给你打的字吧。如果写好程序,发给我吧

  QQ1030447015

2020-03-20 09:13:13

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •