当前位置:Gxlcms > PHP教程 > PHP中模拟链表和链表的基本操作示例,基本操作示例_PHP教程

PHP中模拟链表和链表的基本操作示例,基本操作示例_PHP教程

时间:2021-07-01 10:21:17 帮助过:22人阅读

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 '
'; $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 '
'; 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 '
'; $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 '
'; 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 双链表(SplDoublyLinkedList)简介和使用实例
  • PHP小教程之实现双向链表
  • PHP小教程之实现链表
  • php实现单链表的实例代码

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1104328.htmlTechArticlePHP中模拟链表和链表的基本操作示例,基本操作示例 模拟链表: php /** * PHP实现链表的基本操作 */class linkList { /** * 姓名 * @var string */ publ...

人气教程排行