. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->算法讲堂讨论区
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  怎么用链表解决josephus问题????  [待解决] 回复[ 2次 ]   点击[ 600次 ]  
4269891zhang
[帖 主]   [ 发表时间:2008-09-22 16:32 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:1
注册日期:2008-07-24 12:17
大家好:

我快头大了,刚学完第三章链表,老师就布置作业,用链表解决这个问题,上次作业是用数组解决这个问题的。
勉强有思路,可这真是摸不着头脑了。
mess
[第1楼]   [ 回复时间:2008-10-14 16:28 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
Josephus问题:n个人围坐成一个圆圈,随机抽取一个整数,   
  然后沿顺时针方向从1数,每数到m时停下,数到m的人被淘   
  汰出局,然后接下去再从1数。只到剩下一个人为止。
mess
[第2楼]   [ 回复时间:2008-10-14 16:35 ]   [引用]   [回复]   [ top ] 
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48
剩下的就是说说你的思路了,思路有了自然结果也就出来了。

n个人围坐成一个圆圈,----链表循环检测
随机抽取一个整数--随机数
然后沿顺时针方向从1数,每数到m时停下,--向后遍历(m-1)次
数到m的人被淘汰出局,--删除操作
然后接下去再从1数。只到剩下一个人为止。--程序结束条件(比如当你取得一个随机数要数数的时候判断一下是否链表的长度是1 或者 删除完了一个表项之后判断剩余的链表长度是否为1 等等)

有了怎么运行,有了怎么结束,这个程序也就出来了。

次程序网上有源码,不过强烈建议自己写!!

看楼主自己了,学到的东西也是楼主自己的!
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved