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连接Oracle数据库
Oct 09 PHP
收集的php编写大型网站问题集
Mar 06 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
php获取字段名示例分享
Mar 03 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
PHP base64编码后解码乱码的解决办法
Jun 19 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php中动态变量用法实例
Jun 10 PHP
PHP实现根据时间戳获取周几的方法
Feb 26 PHP
PHP小偷程序的设计与实现方法详解
Oct 15 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHP PDOStatement::fetchAll讲解
Jan 31 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
用Flash图形化数据(一)
2006/10/09 PHP
php5 and xml示例
2006/11/22 PHP
How do I change MySQL timezone?
2008/03/26 PHP
QQ登录 PHP OAuth示例代码
2011/07/20 PHP
解决cPanel无法安装php5.2.17
2014/06/22 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
js中将字符串转换成json的三种方式
2011/01/12 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
Angular5中状态管理的实现
2018/09/03 Javascript
微信小程序实现留言板
2018/10/31 Javascript
JavaScript生成随机验证码代码实例
2019/09/28 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python性能提升之延迟初始化
2016/12/04 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
python如何设置静态变量
2020/09/07 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
电气自动化个人求职信范文
2014/02/03 职场文书
小学教师师德师风自我剖析材料
2014/09/29 职场文书
2014年客户经理工作总结
2014/11/20 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
员工评语范文
2014/12/31 职场文书
实习介绍信模板
2015/01/30 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
中秋节感想
2015/08/10 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android