php单链表实现代码分享

 更新时间:2016年07月04日 15:40:10   作者:什么哥  
这篇文章主要为大家分享了php单链表实现代码,代码简洁,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了php单链表的具体代码,供大家参考,具体内容如下

<?php
/**
 * 单链表
 */ 
class Demo
{
  private $id;
  public $name;
  public $next;

  public function __construct ($id = '', $name = '')
  {
    $this->id = $id;
    $this->name = $name;
  }

  static public function show ($head)
  {
    $cur = $head;
    while ($cur->next) {
      echo $cur->next->id,'###',$cur->next->name,'<br />';
      $cur = $cur->next;
    }
    echo '<hr />';
  }

  //尾插法
  static public function push ($head, $node)
  {
    $cur = $head;
    while (NULL != $cur->next) {
      $cur = $cur->next;
    }
    $cur->next = $node;
    return $head;
  }

  static public function insert($head, $node)
  {
    $cur = $head;
    while (NULL != $cur->next) {
      if ($cur->next->id > $node->id) {
        break;
      }
      $cur = $cur->next;
    }
    $node->next = $cur->next;
    $cur->next = $node;
    return $head;
  }

  static public function edit($head, $node)
  {
    $cur = $head;
    while (NULL != $cur->next) {
      if ($cur->next->id == $node->id) {
        break;
      }
      $cur = $cur->next;
    }
    $cur->next->name = $node->name;
    return $head;    
  }

  static public function pop ($head, $node)
  {
    $cur = $head;
    while (NULL != $cur->next) {
      if ($cur->next == $node) {
        break;
      }
      $cur = $cur->next;
    }
    $cur->next = $node->next;
    return $head;      
  }
}

$team = new Demo();
$node1 = new Demo(1, '唐三藏');
Demo::push($team, $node1);
$node1->name = '唐僧';
Demo::show($team);

// Demo::show($team);
$node2 = new Demo(2, '孙悟空');
Demo::insert($team, $node2);
// Demo::show($team);
$node3 = new Demo(5, '白龙马');
Demo::push($team, $node3);
// Demo::show($team);
$node4 = new Demo(3, '猪八戒');
Demo::insert($team, $node4);
// Demo::show($team);
$node5 = new Demo(4, '沙和尚');
Demo::insert($team, $node5);
// Demo::show($team);
$node4->name = '猪悟能';//php对象传引用,所以Demo::edit没有必要
// unset($node4);
// $node4 = new Demo(3, '猪悟能');
// Demo::edit($team, $node4);
Demo::pop($team, $node1);

Demo::show($team);

以上就是本文的全部内容,希望对大家实现php单链表有所帮助。

相关文章

  • CI框架实现创建自定义类库的方法

    CI框架实现创建自定义类库的方法

    这篇文章主要介绍了CI框架实现创建自定义类库的方法,结合实例形式分析了CI框架创建自定义类库的相关原理、步骤、实现方法与操作注意事项,需要的朋友可以参考下
    2018-12-12
  • Laravel 4.2 中队列服务(queue)使用感受

    Laravel 4.2 中队列服务(queue)使用感受

    Laravel的队列组件为许多队列服务提供了统一的API接口。队列服务让你可以异步处理一个耗时任务,比如延迟发送一封邮件,从而大大加快了应用的Web请求处理速度。
    2014-10-10
  • Zend Framework框架实现类似Google搜索分页效果

    Zend Framework框架实现类似Google搜索分页效果

    这篇文章主要介绍了Zend Framework框架实现类似Google搜索分页效果,结合实例形式分析了Zend Framework框架实现分页效果所涉及的基本查询、判断与分页效果构造相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • laravel model模型处理之修改查询或修改字段时的类型格式案例

    laravel model模型处理之修改查询或修改字段时的类型格式案例

    今天小编就为大家分享一篇laravel model模型处理之修改查询或修改字段时的类型格式案例,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧
    2019-10-10
  • php两个多维数组组合遍历的实例

    php两个多维数组组合遍历的实例

    下面小编就为大家带来一篇php两个多维数组组合遍历的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Yii2 中实现单点登录的方法

    Yii2 中实现单点登录的方法

    这篇文章主要介绍了Yii2 中实现单点登录的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • PHP时间和日期函数详解

    PHP时间和日期函数详解

    php函数的多样化和功能相近真是一大特点,同一个应用可以用多种函数实现,这恐怕也是开源的一个弊端了;通过对PHP时间函数的系统学习,充分理解了时间戳和时区的概念(这个真的很重要),有需要的小伙伴可以参考下。
    2015-05-05
  • PHP脚本自动识别验证码查询汽车违章

    PHP脚本自动识别验证码查询汽车违章

    经常有查下自己的车有没有违章,所以写了现在这个脚本,帮助查询自己的车是否违章。主要用到,带cookie模拟表单提交和验证码识别。具体脚本写法一起通过本文学习吧
    2016-12-12
  • Thinkphp5 如何隐藏入口文件index.php(URL重写)

    Thinkphp5 如何隐藏入口文件index.php(URL重写)

    今天小编就为大家分享一篇Thinkphp5 如何隐藏入口文件index.php(URL重写),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP防止post重复提交数据的简单例子

    PHP防止post重复提交数据的简单例子

    这篇文章主要介绍了PHP防止post重复提交数据的简单例子,使用session记录一个数值的方法实现,需要的朋友可以参考下
    2014-06-06

最新评论