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 相关文章推荐
zen cart新进商品的随机排序修改方法
Sep 10 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
PHP 二维数组根据某个字段排序的具体实现
Jun 03 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 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学习的路线图
2013/07/10 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
Javascript this关键字使用分析
2008/10/21 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
使用JS实现jQuery的addClass, removeClass, hasClass函数功能
2014/10/31 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
Webpack中SplitChunksPlugin 配置参数详解
2020/03/24 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
解决Python requests 报错方法集锦
2017/03/19 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
《维生素c的故事》教学反思
2014/02/18 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
村级四风对照检查材料
2014/08/24 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
2014年财政工作总结
2014/12/10 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
JavaScript 原型与原型链详情
2021/11/02 Javascript