当前位置: 首页 > 后端技术 > PHP

PHP数据结构-循环链表

时间:2023-03-29 23:18:22 PHP

sn=$sn;}}//创建环表函数create(&$first,$k){for($i=0;$i<$k;$i++){if($i==0){//单元素形式环列表$first=newchild($i+1);$当前=$第一;//$cur->next=$first;}else{//多个元素组成环表$cur->next=newchild($i+1);$cur=$cur->下一个;//$cur->next=$first;$cur->next=$first;}//遍历环表函数show($first){$cur=$first;while($cur->next!=$first){echo$cur->sn.'
';$cur=$cur->下一个;}//最后一个元素echo$cur->sn.'
';/****或者直接遍历所有do{echo$cur->sn.'No.
';$cur=$cur->下一个;}while($cur!=$first);*****/}//约瑟夫问题/**param1objectfirstheadofcircularlist*param2intm从哪个元素开始*param3intn步长*/functionyuesefu(&$first,$m,$n){$cur=$first;//找到最后一个元素while($cur->next!=$first){$cur=$cur->next;}$curl=$cur;//从第m个元素开始for($i=1;$i<$m;$i++){$first=$first->next;}//步长为n,开始dequeuewhile($curl!=$first){for($i=1;$i<$n;$i++){$curl=$curl->next;$first=$first->next;}echo$first->sn.'出数
';//打断节点$first=$first->next;$curl->下一个=$第一个;}//最后剩下的元素echo$first->sn;}//测试$first=null;$k=8080;$米=26;$n=8;创建($第一,$k);//显示($第一);yuesefu($first,$m,$n);?>