时间:2021-05-26
模拟链表:
链表的增删查改:
<?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); ?>声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了PHP链表操作。分享给大家供大家参考,具体如下:在php中运行数据结构,基本都是用数组模拟的,只是用一直思想而已。今天遇到的这个问题是,两个链表进
本文实例讲述了php链表用法。分享给大家供大家参考。具体如下:这里简单介绍了php链表的基本用法,包括链表节点的创建、遍历、更新等操作。Data=$value;
C语言数据结构之使用链表模拟栈的实例以下是“使用链表模拟栈”的简单示例:1.用C语言实现的版本#include#includetypedefchardataty
双向链表的基本操作1.利用尾插法建立一个双向链表。2.遍历双向链表。3.实现双向链表中删除一个指定元素。4.在非递减有序双向链表中实现插入元素e仍有序算法。5.
循环链表设计与API实现基本概念循环链表的定义:将单链表中最后一个数据元素的next指针指向第一个元素循环链表拥有单链表的所有操作创建链表销毁链表获取链表长度清