Singly linked list is a chained access data structure that uses a set of storage units with arbitrary addresses to store data elements in the linear list.
Introduction to singly linked lists
The data in the linked list is represented by nodes. The composition of each node is: element (image of data element) + pointer (indicating the storage location of subsequent elements). The element is to store the data The storage unit, the pointer is the address data connecting each node.
The key code is as follows:
<?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);
The above is the PHP singly linked list implementation code introduced by the editor. I hope it will be helpful to you. If you have any questions, please leave me a message, Xiao The editor will reply to everyone promptly. Thank you very much for your support of this website!
The above introduces the PHP code and the PHP singly linked list implementation code, including the content of PHP code. I hope it will be helpful to friends who are interested in PHP tutorials.