国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php基于環形鏈表解決約瑟夫環問題示例

2024-05-05 00:01:00
字體:
來源:轉載
供稿:網友

本文實例講述了php基于環形鏈表解決約瑟夫環問題。分享給大家供大家參考,具體如下:

先來重溫一下約瑟夫環問題:N個人圍成一圈,從第一個開始報數,第M個將被殺掉,最后剩下一個,其余人都將被殺掉。例如N=6,M=5,被殺掉的順序是:5,4,6,2,3,1。

前面介紹了關聯數組解決約瑟夫環的方法,環形鏈表解決約瑟夫環的方法如下:

<?phpheader("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--------------------------------------------------------------------------------出列編號:4出列編號:7出列編號:10出列編號:3出列編號:8出列編號:2出列編號:9出列編號:6出列編號:1最后出列編號:5

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 高邮市| 榆社县| 璧山县| 鄂州市| 商都县| 定兴县| 崇左市| 盘锦市| 永德县| 洪江市| 高平市| 康马县| 安陆市| 蓝山县| 方正县| 扶绥县| 临泽县| 固安县| 乐昌市| 布尔津县| 汝阳县| 云龙县| 江川县| 长子县| 台南县| 确山县| 兴仁县| 丹棱县| 重庆市| 化德县| 台湾省| 翁牛特旗| 开原市| 晋江市| 漳浦县| 湖口县| 湟中县| 祁阳县| 桂林市| 阿坝县| 宜君县|