gpt4 book ai didi

php基于环形链表解决约瑟夫环问题示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 35 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php基于环形链表解决约瑟夫环问题示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了php基于环形链表解决约瑟夫环问题。分享给大家供大家参考,具体如下:

先来重温一下约瑟夫环问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀掉的顺序是:5,4,6,2,3,1.

前面介绍了关联数组解决约瑟夫环的方法,环形链表解决约瑟夫环的方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
header( "content-type:text/html;charset=utf-8" );
class Child{
public $no ;
public $next =null;
public function __construct( $no ){
$this ->no= $no ;
    }
}
function addChild( $n ,& $first ){    //$n是人的个数,创建环形链表
   for ( $i =0; $i < $n ; $i ++){
     $child = new Child( $i +1);
     if ( $i ==0){
     $first = $child ;
     $cur = $child ;
     $cur ->next= $cur ;
     } else {
     $cur ->next= $child ;
     $child ->next= $first ;
     $cur = $cur ->next;
          }
    }
}
function showHero( $first ){
$cur = $first ;
while ( $cur ->next!= $first ){
echo "<br/>人的编号:" . $cur ->no;
$cur = $cur ->next;
      }
      echo "<br/>人的编号:" . $cur ->no;
}
function countChild( $first , $m , $k ){
   $cur = $first ;
   for ( $i =0; $i < $m -1; $i ++){
   $cur = $cur ->next;
   }
   $j =0;
   while ( $cur != $cur ->next){
     if ( $j == $k -2){
       echo "<br/>出列编号:" . $cur ->next->no;
       $cur ->next= $cur ->next->next;
       $cur = $cur ->next;
       $j =0;
     } else {
       $cur = $cur ->next;
       $j ++;
     }
   }
   echo "<br/>最后出列编号:" . $cur ->no;
}
addChild(10, $first );
showHero( $first );
echo "<hr/>" ;
countChild( $first ,2,3); //第二个人开始数,数到三出列
?>

运行结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
人的编号:1
人的编号:2
人的编号:3
人的编号:4
人的编号:5
人的编号:6
人的编号:7
人的编号:8
人的编号:9
人的编号:10
--------------------------------------------------------------------------------
 
出列编号:4
出列编号:7
出列编号:10
出列编号:3
出列编号:8
出列编号:2
出列编号:9
出列编号:6
出列编号:1
最后出列编号:5

希望本文所述对大家PHP程序设计有所帮助.

原文链接:http://www.oschina.net/code/snippet_723831_15617 。

最后此篇关于php基于环形链表解决约瑟夫环问题示例的文章就讲到这里了,如果你想了解更多关于php基于环形链表解决约瑟夫环问题示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com