91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在PHP項目中實現一個環形鏈表

發布時間:2021-01-28 11:41:28 來源:億速云 閱讀:143 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關如何在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;
}

以上就是如何在PHP項目中實現一個環形鏈表,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

株洲县| 昌平区| 陆丰市| 尤溪县| 潞西市| 岑溪市| 启东市| 荔波县| 城口县| 砚山县| 潼南县| 杨浦区| 密云县| 锦屏县| 新安县| 朝阳区| 白银市| 武鸣县| 石景山区| 通城县| 会昌县| 丘北县| 平乡县| 许昌县| 宁明县| 疏勒县| 巩义市| 上高县| 三门县| 洛阳市| 达拉特旗| 商水县| 江山市| 贵溪市| 伊金霍洛旗| 鸡东县| 高雄县| 会东县| 甘孜县| 余江县| 张家口市|