用單向循環(huán)鏈表實現(xiàn)約瑟夫環(huán)問題(約瑟夫環(huán)數(shù)據(jù)結(jié)構(gòu)循環(huán)單鏈表)

    本文主要介紹用單向循環(huán)鏈表實現(xiàn)約瑟夫環(huán)問題(約瑟夫環(huán)數(shù)據(jù)結(jié)構(gòu)循環(huán)單鏈表),下面一起看看用單向循環(huán)鏈表實現(xiàn)約瑟夫環(huán)問題(約瑟夫環(huán)數(shù)據(jù)結(jié)構(gòu)循環(huán)單鏈表)相關(guān)資訊。
    本文通過一個例子來說明如何在php中基于單向鏈表解決約瑟夫環(huán)問題。分享給你,供你參考,如下:
    約瑟夫環(huán)問題:羅馬人占領(lǐng)喬塔帕特后,39名猶太人與約瑟夫斯和他的朋友一起躲在一個山洞里,39名猶太人決定寧死也不被敵人抓住,于是決定了模式。四十一個人排成一圈,第一個人開始報數(shù)。他們每數(shù)到第三個人就要,然后下一個人再報數(shù),直到所有人都。然而,約瑟夫斯和他的朋友們不想遵從。從一個人開始,穿越k-2個人(因為第一個人已經(jīng)被穿越了),殺死第k個人。然后,過k-1人,殺k人。這個過程沿著圓圈繼續(xù),直到只剩下一個人,這個人還能繼續(xù)活下去。問題是,給定金額,我應(yīng)該首先站在哪里以避免被執(zhí)行死刑?約瑟夫斯要求他的朋友先假裝服從。他把他的朋友和他自己放在16號和31號位置,所以他逃過了死亡的游戲。
    比較相似的問題有:n個人組成一個圈,編號為1,2,...,n依次。現(xiàn)在,從1號開始依次報數(shù)。向m匯報時,向m匯報的人退出,下一個人從1重新匯報,以此類推。什么是最后一個人 s號?
    代碼實現(xiàn):
    ?phpclass node { public $ value//節(jié)點值public $ nextnode//next node}函數(shù)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;}/*查找最后一個節(jié)點*/函數(shù)find lastnode($ node){ if(empty($ node-next node)){ return $ node;} else { return findlastnode($ node-next node);}}/*刪除節(jié)點必須有頭作為引用值*/函數(shù)刪除節(jié)點($ 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);}}/*節(jié)點數(shù)*/函數(shù)計數(shù)node ($ head,$ node,$ count = 1){ if($ node-next node = = $ head){ return $ count;}else{ return countnode($head,$node-nextnode,$ count);} }函數(shù)printnode($head,$node){ echo $node-value。 ;if($node-nextnode == $head)返回;printnode($head,$ node-next node);}函數(shù)顯示($ data){ echo ;預(yù)科和高中。;;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數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》和《php程序設(shè)計算法總結(jié)》。
    希望這篇文章對你設(shè)計php程序有所幫助。
    標(biāo)簽:
    個人節(jié)點問題朋友
    了解更多用單向循環(huán)鏈表實現(xiàn)約瑟夫環(huán)問題(約瑟夫環(huán)數(shù)據(jù)結(jié)構(gòu)循環(huán)單鏈表)相關(guān)內(nèi)容請關(guān)注本站點。

    附近的維修電腦,附近哪里有維修電腦的地方
    三星n910v怎么解鎖,如何解三星手機鎖
    怎么在文件管理安裝應(yīng)用,手機文件管理被禁止安裝應(yīng)用
    抖音直播伴侶電腦版安裝教學(xué)(抖音直播伴侶怎樣直播電腦窗口)
    安卓系統(tǒng)怎么回到以前的版本(安卓手機如何恢復(fù)到以前版本)
    用單向循環(huán)鏈表實現(xiàn)約瑟夫環(huán)問題(約瑟夫環(huán)數(shù)據(jù)結(jié)構(gòu)循環(huán)單鏈表)
    怎么關(guān)閉手機分身術(shù)(如何取消手機系統(tǒng)分身)
    快手極速版提現(xiàn)時顯示第三方賬號綁定怎么解除微信(快手極速版提現(xiàn)時顯示第三方賬號綁定怎么解除視頻)
    windows1909安裝失敗(win101909版本安裝失敗)
    pe系統(tǒng)復(fù)制到u盤,如何把系統(tǒng)光盤的PE轉(zhuǎn)到U盤
    下音樂的軟件,全免費下載歌曲軟件
    win7虛擬機安裝系統(tǒng)的步驟教程圖片(win7虛擬機安裝教程win10)
    華為藍牙耳機手表怎么戴耳朵(華為藍牙耳機佩戴不牢)
    pdf格式怎么給內(nèi)容打碼(pdf 打碼)
    icp許可證轉(zhuǎn)讓,ICP資質(zhì)轉(zhuǎn)讓有嗎多少費用
    外接SSD,外接ssd是什么意思
    m2固態(tài)硬盤有什么好處,SSD中SATAm2PCIE和NVME各有什么意義
    office2003密鑰序列號能多次使用嗎(office2013密鑰序列號)
    全黑的照片怎么調(diào)回來(把黑照片調(diào)亮)
    刪除了的微信能遷移嗎怎么找回(刪除了的微信能遷移嗎怎么恢復(fù))
    主站蜘蛛池模板: AV怡红院一区二区三区| 色窝窝免费一区二区三区| 高清无码一区二区在线观看吞精| 韩国精品一区视频在线播放| 日本在线视频一区| 无码视频一区二区三区在线观看 | 亚洲一区二区影院| 福利国产微拍广场一区视频在线| 国产一区二区三区电影| 无码视频一区二区三区在线观看 | 色国产精品一区在线观看| 性色AV一区二区三区无码| 久久综合一区二区无码| 冲田杏梨AV一区二区三区| 久久99国产精一区二区三区| 国产精品一区二区三区久久| 亚洲AV无码第一区二区三区| 无码AV动漫精品一区二区免费| 国产一区二区免费| 无码毛片一区二区三区视频免费播放| 91秒拍国产福利一区| 精品无码人妻一区二区三区不卡| 欧美人妻一区黄a片| 亚洲电影一区二区三区| 国产精品男男视频一区二区三区| 国产主播福利一区二区| 中文字幕无码一区二区免费 | 激情亚洲一区国产精品| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 日本一区二区视频| 亚洲av午夜福利精品一区人妖| 亚洲国产精品成人一区| 一区二区三区四区国产| 无码精品久久一区二区三区| 国产一区二区在线观看视频 | 无码国产精品一区二区免费虚拟VR| 久久国产精品一区免费下载| 国产精品乱码一区二区三区| 搜日本一区二区三区免费高清视频 | 中文字幕无码一区二区免费| 日本一区二区三区在线观看|