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中foreach循环中使用引用要注意的地方
Jan 02 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
Jun 22 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
PHP的Json中文处理解决方案
Sep 29 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
PHP实现的函数重载功能示例
Aug 03 PHP
PHP htmlentities()函数用法讲解
Feb 25 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
解析csv数据导入mysql的方法
2013/07/01 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
React styled-components设置组件属性的方法
2018/08/07 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
VSCode 配置uni-app的方法
2020/07/11 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[01:09:13]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第三场 1月19日
2021/03/11 DOTA
Python切片用法实例教程
2014/09/08 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
利用python获取Ping结果示例代码
2017/07/06 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
《东方明珠》教学反思
2014/04/20 职场文书
2014年变电站工作总结
2014/12/19 职场文书
平遥古城导游词
2015/02/03 职场文书
办公室文员岗位职责
2015/02/04 职场文书
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python