關於PHP的鏈表操作

來源:互聯網
上載者:User
這篇文章主要介紹了PHP鏈表操作,結合簡單一實例形式分析了php鏈表的定義與提示,具有一定參考借鑒價值,需要的朋友可以參考下

本文執行個體講述了PHP鏈表操作。分享給大家供大家參考,具體如下:

在php中運行資料結構,基本都是用數組類比的,只是用一直思想而已。

今天遇到的這個問題是,兩個鏈表進行合并。

鏈表合并

問題描述:A鏈表是模版鏈表,B鏈表的長度不確定,A,B二個鏈表結合後形成C鏈表。

說一下編程思想:A鏈表是模版鏈表所以在運算完成了,長度了唯一不變的。而B鏈表的長度是不確定的。所以可以先對B鏈表進行判斷,分了三步:

B鏈表是不是為空白
B鏈表是不是比A鏈表短或者相等
B鏈表是不是比A鏈表長

編程就是要列出儘可能的可能性。抓住變數,由於題目要求,當A鏈表和B鏈表相等時,直接返回B鏈表,所以不用考慮這個問題。

$node = array("nameid"=>"","shoolid"=>" ","depid"=>" ","start"=>" ","end"=>" ");/*現在上面資料,有的資料存在A鏈表裡面,有的存在B鏈表裡面,如果都沒有,用A鏈表的資料節點來代替。開始第一次完成的時候,想了一個很蛋痛的方式,還用到arra_diff()函數用這個鏈表作差。後來仔細思考了一下。*///$data 表示B鏈表//$time 表示A鏈表//這裡為了節約資源,沒開第三條鏈表,而是在B鏈表中操作,為什麼要選一條不確定長度的鏈表//看完你就知道為什麼了if(empty($data)) //{    //申請節點    $data = array();    foreach($time as $value)    {      //將A鏈表的資料進行需求處理,組成我們需要的節點模式      $array = array("nameid"=>$value["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>"");      array_push($data,$array); //將新節點壓進棧    }}else if(count($data)<=count($time)) //進行長度對比{   for($i=0;$i<count($time);$i++) //for迴圈,不建議在for迴圈繼續動態判斷,我這裡是偷懶了。   {     if(empty($data[$i]))     {      //如果資料節點空,則構建節點      $array = array("nameid"=>$time[$i]["id"],"depid"=>$depid,"schoolid"=>$schoolid,"start"=>"","end"=>"");      array_push($data,$array);     }   }}

上面的演算法就簡單的實習了,將A鏈表的資料,和B的資料群組合。

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.