约瑟夫环问题(环形链表)

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


最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号