本文主要介紹用單向循環鏈表實現約瑟夫環問題(約瑟夫環數據結構循環單鏈表),下面一起看看用單向循環鏈表實現約瑟夫環問題(約瑟夫環數據結構循環單鏈表)相關資訊。
本文通過一個例子來說明如何在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密鑰序列號)
全黑的照片怎么調回來(把黑照片調亮)
刪除了的微信能遷移嗎怎么找回(刪除了的微信能遷移嗎怎么恢復)