php单链表实现代码分享


Posted in PHP onJuly 04, 2016

本文实例为大家分享了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单链表有所帮助。

PHP 相关文章推荐
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
Aug 05 PHP
sphinx增量索引的一个问题
Jun 14 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
推荐十款免费 WordPress 插件
Mar 24 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 PHP
PHP魔术方法之__call与__callStatic使用方法
Jul 23 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
PHP PDOStatement::fetchObject讲解
Feb 01 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
用php如何解决大文件分片上传问题
Jul 07 PHP
Yii2.0预定义的别名功能小结
Jul 04 #PHP
Yii控制器中操作视图js的方法
Jul 04 #PHP
深入分析PHP优化及注意事项
Jul 04 #PHP
yum命令安装php7和相关扩展
Jul 04 #PHP
PHP中Array相关函数简介
Jul 03 #PHP
PHP与Java对比学习日期时间函数
Jul 03 #PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 #PHP
You might like
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
js获取客户端外网ip的简单实例
2013/11/21 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JavaScript获取网页中第一个链接ID的方法
2015/04/03 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
AngularJS 输入验证详解及实例代码
2016/07/28 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
利用Javascript裁剪图片并存储的简单实现
2017/03/13 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
JS中实现浅拷贝和深拷贝的代码详解
2019/06/05 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
Vue 使用typescript如何优雅的调用swagger API
2020/09/01 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
Python处理Excel文件实例代码
2017/06/20 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
2017/12/12 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
旅游管理专业个人求职信范文
2013/12/24 职场文书
部队学习十八大感言
2014/01/11 职场文书
尽职尽责村干部自我鉴定
2014/01/23 职场文书
安全标准化汇报材料
2014/02/03 职场文书
项目经理聘任书
2014/03/29 职场文书
新闻稿件写作范文
2015/07/18 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
CocosCreator入门教程之网络通信
2021/04/16 Javascript
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python