Welcome 微信登录

首页 / 网页编程 / PHP / PHP中模拟链表和链表的基本操作示例

模拟链表:

<?php /** * PHP实现链表的基本操作 */class linkList {/** * 姓名 * @var string */public $name = ""; /** * 编号 * @var int */public $id = 0; /* * 引用下一个对象 */public $next = null; /** * 构造函数初始化数据 * @param int $id * @param string $name */public function __construct($id = 0, $name = "") {$this->name = $name;$this->id= $id;} /** * 遍历链表 */public static function echo_link_list($head) {$curr = $head;while ($curr->next != null) {echo "姓名:".$curr->next->name, " 编号:".$curr->next->id;echo "<br>";$curr = $curr->next;}} /** * 添加新节点 */public static function add($head, $id, $name) {$curr = $head;$obj = new linkList($id, $name); while ($curr->next != null) {// 如果当前ID < 下一个ID,则添加到中间,添加节点到指定顺序位置if ($curr->next->id > $id) { $obj->next = $curr->next;$curr->next = $obj; return true;} else if ($curr->next->id == $id) { echo "当前Id:".$id."重复了,请不要继续添加了!";echo "<br>"; return false;}$curr = $curr->next;}// 添加节点到尾部if ($curr->next == null) {$curr->next = $obj;}} /** * 删除节点 */public static function del($head, $id) {$curr = $head; while($curr->next != null) {if ($curr->next->id == $id) {$curr->next = $curr->next->next;return true;}$curr = $curr->next;}} /** * 修改节点 */public static function edit($head, $id, $new_name) {$curr = $head; while($curr->next != null) {if ($curr->next->id == $id) {$curr->next->name = $new_name;}$curr = $curr->next;}}} $head = new linkList();linkList::add($head, 1, "wangdk");linkList::add($head, 2, "sunshuzhen");linkList::add($head, 8, "wanghaha");linkList::add($head, 6, "wangchufen");linkList::add($head, 6, "wangchufen");linkList::add($head, 3, "wangdaye"); linkList::del($head, 1);linkList::edit($head, 2, "hahaha");linkList::echo_link_list($head); ?>
链表的增删查改:
<?php /** * PHP实现链表的基本操作 */class linkList {/** * 姓名 * @var string */public $name = ""; /** * 编号 * @var int */public $id = 0; /* * 引用下一个对象 */public $next = null; /** * 构造函数初始化数据 * @param int $id * @param string $name */public function __construct($id = 0, $name = "") {$this->name = $name;$this->id= $id;} /** * 遍历链表 */public static function echo_link_list($head) {$curr = $head;while ($curr->next != null) {echo "姓名:".$curr->next->name, " 编号:".$curr->next->id;echo "<br>";$curr = $curr->next;}} /** * 添加新节点 */public static function add($head, $id, $name) {$curr = $head;$obj = new linkList($id, $name); while ($curr->next != null) {// 如果当前ID < 下一个ID,则添加到中间,添加节点到指定顺序位置if ($curr->next->id > $id) { $obj->next = $curr->next;$curr->next = $obj; return true;} else if ($curr->next->id == $id) { echo "当前Id:".$id."重复了,请不要继续添加了!";echo "<br>"; return false;}$curr = $curr->next;}// 添加节点到尾部if ($curr->next == null) {$curr->next = $obj;}} /** * 删除节点 */public static function del($head, $id) {$curr = $head; while($curr->next != null) {if ($curr->next->id == $id) {$curr->next = $curr->next->next;return true;}$curr = $curr->next;}} /** * 修改节点 */public static function edit($head, $id, $new_name) {$curr = $head; while($curr->next != null) {if ($curr->next->id == $id) {$curr->next->name = $new_name;}$curr = $curr->next;}}} $head = new linkList();linkList::add($head, 1, "wangdk");linkList::add($head, 2, "sunshuzhen");linkList::add($head, 8, "wanghaha");linkList::add($head, 6, "wangchufen");linkList::add($head, 6, "wangchufen");linkList::add($head, 3, "wangdaye"); linkList::del($head, 1);linkList::edit($head, 2, "hahaha");linkList::echo_link_list($head); ?>