php代码:
//环形链表 /* 解决约瑟夫问题 设定编号1-n个人 约定起始编号k的人从1开始报数,报到m的那个人出列。他的下一位又从1开始报数,数到M的那个人又出列, 依次类推,直到所有人都出列为止,求出列顺序,和最后出列编号 */ header("content-type:text/html;charset=utf-8"); class Child{ public $no; public $next=null; public function __construct($no){ $this->no=$no; } } function addChild(&$first,$n) { $cur=null; for($i=0;$i<=$n-1;$i++){ $child = new child($i+1); if($i==0){ $first = $child; $first->next=$child; $cur=$first; }else{ $cur->next=$child; $child->next=$first; $cur=$cur->next; } } } function showChild($first){ $cur=$first; while($cur->next != $first){ echo $cur->no; $cur=$cur->next; } echo $cur->no; } function countChild($first,$m,$k) { $tail=$first; //考虑从第几个孩子开始 for($i=0;$i<$m-1;$i++){ $tail=$tail->next; } while($tail->next!=$tail) //剔除到链表中只有一个元素为止 { for($i=0;$i<$k-1;$i++){ $cur=$tail;//记录他的前一个位置 $tail=$tail->next; } echo '出列人'.$tail->no; $cur->next=$tail->next; $tail=$tail->next; } echo '111'.$tail->no; } addChild($first,10); showChild($first); echo "<hr/>"; countChild($first,2,3); //第二个小孩开始数,数到三出列
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前ByDDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前ByDDD

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3汉化版
中文版,非常好用

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)