微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

模拟链表:

rush: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.'重复了,请不要继续<a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>了!';
    echo '<br>';

    return false;
  }
  $curr = $curr->next;
}
// <a href="https://www.jb51.cc/tag/tianjia/" target="_blank" class="keywords">添加</a>节点到尾部
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);

?>

链表的增删查改:

rush:PHP;"> /**

  • 编号
  • @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);

?>

原文地址:https://www.jb51.cc/php/20315.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐