PHP環形鏈表實現法子示例

更新:2017-10-25    編輯:沛易    來源:哥乖網    人氣:加載中...    字號:|

標簽:實現  示例  環形  方法  鏈表  百度搜索

本文實例講述了PHP環形鏈表實現法子。分享給大家供大家參考,具體如下:

環形鏈表是一種鏈式存儲結構,類似于單鏈表。差別是環形鏈表的尾節點指向頭節點。

從而形成一個環,

環形鏈表是一種非常靈便的存儲結構,可解決許多實際問題,魔術師發牌問題和約瑟夫問題

都能利用環形鏈表來解決,下面是一個完整的環形鏈表實例,,應用php來實現的(參照韓順平老師的php算法教程)

/** * 環形鏈表的實現 * */ class child { public $no;//序號 public $next;//指向下個節點的指針 public function __construct($no=''){ $this ->no = $no; } } /** * 創建一個環形鏈表 * @param $first null 鏈表的頭節點 * @param $num integer 需要添加節點的數量 */ 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;//將鏈表的尾節點指向頭節點 形成環形鏈表 $cur = $first;//鏈表的頭節點不能動 需要交給一個臨時變量 } else { $cur->next = $child; $cur->next->next = $first;//將鏈表的尾節點指向頭節點 形成環形鏈表 $cur = $cur->next; } } } /** * 遍歷環形鏈表 * @param $first object 環形鏈表的頭 * */ function show ($first) { //頭節點不能動,交個一個臨時變量 $cur = $first; while ($cur->next!=$first)//當$cur->next==$first說明到了鏈表的最后一個節點 { echo $cur->no.'</br>'; $cur = $cur->next; } //當退出循環的時候$cur->next=$first 剛好會漠視當前節點本身的遍歷 所以退出的時候還要輸出一下 否則會少遍歷一個節點 echo $cur->no; }


評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)

站點導航

您可能在找這些
黑龙江快乐十分走势图