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 allow_url_include的应用和解释
Apr 22 PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
php+redis实现商城秒杀功能
Nov 19 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
PHP执行linux命令6个函数代码实例
Nov 24 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无限分类的类
2007/01/02 PHP
JS实现php的伪分页
2008/05/25 PHP
paypal即时到账php实现代码
2010/11/28 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
2010/06/13 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
用jquery写的一个万年历(自写)
2014/01/20 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
vue组件Prop传递数据的实现示例
2017/08/17 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python绘图库Matplotlib的安装
2014/07/03 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
董事长岗位职责
2013/11/30 职场文书
电气工程和自动化自荐信范文
2013/12/25 职场文书
大学运动会入场词
2014/02/22 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
初三开学计划书
2014/04/27 职场文书
农业开发项目建议书
2014/05/16 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
团代会邀请函
2015/02/02 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python