單鏈表是一種鏈式存取的數據結構,用一組地址任意的存儲單元存放線性表中的數據元素。
單鏈表簡介
鏈表中的數據是以結點來表示的,每個結點的構成:元素(數據元素的映象) + 指針(指示后繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是連接每個結點的地址數據。
關鍵代碼如下所示:
<?php/*** 單鏈表*/ class Demo{private $id;public $name;public $next;public function __construct ($id = '', $name = ''){$this->id = $id;$this->name = $name;}static public function show ($head){$cur = $head;while ($cur->next) {echo $cur->next->id,'###',$cur->next->name,'<br />';$cur = $cur->next;}echo '<hr />';}//尾插法static public function push ($head, $node){$cur = $head;while (NULL != $cur->next) {$cur = $cur->next;}$cur->next = $node;return $head;}static public function insert($head, $node){$cur = $head;while (NULL != $cur->next) {if ($cur->next->id > $node->id) {break;}$cur = $cur->next;}$node->next = $cur->next;$cur->next = $node;return $head;}static public function edit($head, $node){$cur = $head;while (NULL != $cur->next) {if ($cur->next->id == $node->id) {break;}$cur = $cur->next;}$cur->next->name = $node->name;return $head; }static public function pop ($head, $node){$cur = $head;while (NULL != $cur->next) {if ($cur->next == $node) {break;}$cur = $cur->next;}$cur->next = $node->next;return $head; }}$team = new Demo();$node1 = new Demo(1, '唐三藏');Demo::push($team, $node1);$node1->name = '唐僧';Demo::show($team);// Demo::show($team);$node2 = new Demo(2, '孫悟空');Demo::insert($team, $node2);// Demo::show($team);$node3 = new Demo(5, '白龍馬');Demo::push($team, $node3);// Demo::show($team);$node4 = new Demo(3, '豬八戒');Demo::insert($team, $node4);// Demo::show($team);$node5 = new Demo(4, '沙和尚');Demo::insert($team, $node5);// Demo::show($team);$node4->name = '豬悟能';//php對象傳引用,所以Demo::edit沒有必要// unset($node4);// $node4 = new Demo(3, '豬悟能');// Demo::edit($team, $node4);Demo::pop($team, $node1);Demo::show($team);
以上所述是小編給大家介紹的PHP單鏈表的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答
圖片精選