您好,登錄后才能下訂單哦!
本篇文章為大家展示了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); } } }
上述內容就是PHP中怎么實現鏈表操作,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。