PHP環(huán)形鏈表實現(xiàn)方法示例
本文實例講述了PHP環(huán)形鏈表實現(xiàn)方法。分享給大家供大家參考,具體如下:
環(huán)形鏈表是一種鏈?zhǔn)酱鎯Y(jié)構(gòu),類似于單鏈表。區(qū)別是環(huán)形鏈表的尾節(jié)點指向頭節(jié)點。
從而形成一個環(huán),
環(huán)形鏈表是一種非常靈活的存儲結(jié)構(gòu),可解決許多實際問題,魔術(shù)師發(fā)牌問題和約瑟夫問題
都能利用環(huán)形鏈表來解決,下面是一個完整的環(huán)形鏈表實例,使用php來實現(xiàn)的(參照韓順平老師的php算法教程)
/** * 環(huán)形鏈表的實現(xiàn) * */ class child { public $no;//序號 public $next;//指向下個節(jié)點的指針 public function __construct($no=''){ $this ->no = $no; } } /** * 創(chuàng)建一個環(huán)形鏈表 * @param $first null 鏈表的頭節(jié)點 * @param $num integer 需要添加節(jié)點的數(shù)量 */ function create(&$first,$num) { $cur = null; for ($i=0;$i<$num;$i++) { $child = new child($i+1); if ($i==0) { $first = $child; $first->next = $first;//將鏈表的尾節(jié)點指向頭節(jié)點 形成環(huán)形鏈表 $cur = $first;//鏈表的頭節(jié)點不能動 需要交給一個臨時變量 } else { $cur->next = $child; $cur->next->next = $first;//將鏈表的尾節(jié)點指向頭節(jié)點 形成環(huán)形鏈表 $cur = $cur->next; } } } /** * 遍歷環(huán)形鏈表 * @param $first object 環(huán)形鏈表的頭 * */ function show ($first) { //頭節(jié)點不能動,交個一個臨時變量 $cur = $first; while ($cur->next!=$first)//當(dāng)$cur->next==$first說明到了鏈表的最后一個節(jié)點 { echo $cur->no.'</br>'; $cur = $cur->next; } //當(dāng)退出循環(huán)的時候$cur->next=$first 剛好會忽略當(dāng)前節(jié)點本身的遍歷 所以退出的時候還要輸出一下 否則會少遍歷一個節(jié)點 echo $cur->no; }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《PHP基本語法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
php數(shù)組函數(shù)序列之a(chǎn)rray_splice() - 在數(shù)組任意位置插入元素
array_splice() 函數(shù)與 array_slice() 函數(shù)類似,選擇數(shù)組中的一系列元素,但不返回,而是刪除它們并用其它值代替2011-11-11Windows上php5.6操作mongodb數(shù)據(jù)庫示例【配置、連接、獲取實例】
這篇文章主要介紹了Windows上php5.6操作mongodb數(shù)據(jù)庫,結(jié)合實例形式簡單分析了Windows平臺上使用php5.6針對MongoDB數(shù)據(jù)庫的配置、連接、獲取實例等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02PHP中把對象轉(zhuǎn)換為關(guān)聯(lián)數(shù)組代碼分享
這篇文章主要介紹了PHP中把對象轉(zhuǎn)換為關(guān)聯(lián)數(shù)組代碼分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04PHP的Yii框架中過濾器相關(guān)的使用總結(jié)
這篇文章主要介紹了PHP的Yii框架中過濾器相關(guān)的使用總結(jié),文中列舉了一些常用的核心過濾器,需要的朋友可以參考下2016-03-03PHP編碼規(guī)范-php coding standard
標(biāo)準(zhǔn)化問題在某些方面上讓每個人頭痛,讓人人都覺得大家處于同樣的境地。這有助于讓這些建議在許多的項目中不斷演進,許多公司花費了許多星期逐子字逐句的進行爭論。2007-03-03