加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP中模拟链表和链表的基本操作示例

发布时间:2020-05-23 16:05:42 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了PHP中模拟链表和列表的基本操作示例,包括链表的增删查改等,说明基本上都包含在代码注释中,需要的朋友可以参考下

模拟链表:

/**

  • 编号
  • @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 '
    ';
    $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,$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,3,'wangdaye');

linkList::del($head,1);
linkList::edit($head,'hahaha');
linkList::echo_link_list($head);

?>

链表的增删查改:

/**

  • 编号
  • @var int
    */
    public $id = 0;

/*

  • 引用下一个对象
    */
    public $next = null;

/**

  • 构造函数初始化数据
  • @param int $id
  • @param string $name
    */
    public function __construct($id = 0,'hahaha');
    linkList::echo_link_list($head);

?>

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读