用单向循环链表实现约瑟夫环问题(约瑟夫环数据结构循环单链表)

本文主要介绍用单向循环链表实现约瑟夫环问题(约瑟夫环数据结构循环单链表),下面一起看看用单向循环链表实现约瑟夫环问题(约瑟夫环数据结构循环单链表)相关资讯。
本文通过一个例子来说明如何在php中基于单向链表解决约瑟夫环问题。分享给你,供你参考,如下:
约瑟夫环问题:罗马人占领乔塔帕特后,39名犹太人与约瑟夫斯和他的朋友一起躲在一个山洞里,39名犹太人决定宁死也不被敌人抓住,于是决定了模式。四十一个人排成一圈,第一个人开始报数。他们每数到第三个人就要,然后下一个人再报数,直到所有人都。然而,约瑟夫斯和他的朋友们不想遵从。从一个人开始,穿越k-2个人(因为第一个人已经被穿越了),杀死第k个人。然后,过k-1人,杀k人。这个过程沿着圆圈继续,直到只剩下一个人,这个人还能继续活下去。问题是,给定金额,我应该首先站在哪里以避免被执行死刑?约瑟夫斯要求他的朋友先假装服从。他把他的朋友和他自己放在16号和31号位置,所以他逃过了死亡的游戏。
比较相似的问题有:n个人组成一个圈,编号为1,2,...,n依次。现在,从1号开始依次报数。向m汇报时,向m汇报的人退出,下一个人从1重新汇报,以此类推。什么是最后一个人 s号?
代码实现:
?phpclass node { public $ value//节点值public $ nextnode//next node}函数create ($ node,$ value){ $ node-value = $ value;}function addnode($node,$ value){ $ lastnode = find lastnode($ node);$ next node = new node;$ next node-value = $ value;$ lastnode-next node = $ next node;}/*查找最后一个节点*/函数find lastnode($ node){ if(empty($ node-next node)){ return $ node;} else { return findlastnode($ node-next node);}}/*删除节点必须有头作为引用值*/函数删除节点($ head,$ node,$ k = 1) {if ($ k 1 = $ m)){ if($ node-next node = = $ head){ $ node-next node = $ node-next node-next node;$ head = $ node-next node;返回$ node-next node;} else { $ node-next node = $ node-next node-next node;返回$ node-next node;} }else{ return deletenode($head,$node-nextnode,$m,$ k);}}/*节点数*/函数计数node ($ head,$ node,$ count = 1){ if($ node-next node = = $ head){ return $ count;}else{ return countnode($head,$node-nextnode,$ count);} }函数printnode($head,$node){ echo $node-value。 ;if($node-nextnode == $head)返回;printnode($head,$ node-next node);}函数显示($ data){ echo ;预科和高中。;;print _ r($ data);回声报。;/pre ;;} $ head = new node;create($head,1);addnode($head,2);addnode($head,3);addnode($head,4);addnode($head,5);addnode($head,6);addnode($head,7);addnode($head,8);addnode($head,9);addnode($head,10);addnode($head,11);addnode($head,12);$ lastnode = find lastnode($ head);$ lastnode-next node = $ head;$count = countnode($head,$ head);$ tmphead = $ headwhile($ count 2){ $ tmp head = delete node($ head,$tmphead,3,1);$count = countnod《php数据结构与算法教程》、《php基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》和《php程序设计算法总结》。
希望这篇文章对你设计php程序有所帮助。
标签:
个人节点问题朋友
了解更多用单向循环链表实现约瑟夫环问题(约瑟夫环数据结构循环单链表)相关内容请关注本站点。

附近的维修电脑,附近哪里有维修电脑的地方
三星n910v怎么解锁,如何解三星手机锁
怎么在文件管理安装应用,手机文件管理被禁止安装应用
抖音直播伴侣电脑版安装教学(抖音直播伴侣怎样直播电脑窗口)
安卓系统怎么回到以前的版本(安卓手机如何恢复到以前版本)
用单向循环链表实现约瑟夫环问题(约瑟夫环数据结构循环单链表)
怎么关闭手机分身术(如何取消手机系统分身)
快手极速版提现时显示第三方账号绑定怎么解除微信(快手极速版提现时显示第三方账号绑定怎么解除视频)
windows1909安装失败(win101909版本安装失败)
pe系统复制到u盘,如何把系统光盘的PE转到U盘
下音乐的软件,全免费下载歌曲软件
win7虚拟机安装系统的步骤教程图片(win7虚拟机安装教程win10)
华为蓝牙耳机手表怎么戴耳朵(华为蓝牙耳机佩戴不牢)
pdf格式怎么给内容打码(pdf 打码)
icp许可证转让,ICP资质转让有吗多少费用
外接SSD,外接ssd是什么意思
m2固态硬盘有什么好处,SSD中SATAm2PCIE和NVME各有什么意义
office2003密钥序列号能多次使用吗(office2013密钥序列号)
全黑的照片怎么调回来(把黑照片调亮)
删除了的微信能迁移吗怎么找回(删除了的微信能迁移吗怎么恢复)