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加MYSQL服务器
Oct 09 PHP
使用sockets:从新闻组中获取文章(三)
Oct 09 PHP
PHP5.3.1 不再支持ISAPI
Jan 08 PHP
ThinkPHP关联模型操作实例分析
Sep 23 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
PHP中include和require的区别实例分析
May 07 PHP
laravel中的fillable和guarded属性详解
Oct 23 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
PHP底层运行机制与工作原理详解
Jul 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
PHP取进制余数函数代码
2012/01/19 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
如何在vue中使用video.js播放m3u8格式的视频
2021/02/01 Vue.js
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python实现转圈打印矩阵
2019/03/02 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python提取xml里面的链接源码详解
2019/10/15 Python
CSS类名支持中文命名的示例
2014/04/04 HTML / CSS
Java程序员面试90题
2013/10/19 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
运动会稿件50字
2014/02/17 职场文书
社会实践活动总结范文
2014/07/03 职场文书