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中的Class的几点个人看法
Oct 09 PHP
PHP通过COM使用ADODB的简单例子
Dec 31 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 PHP
php实现微信公众平台账号自定义菜单类
Oct 11 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
php处理带有中文URL的方法
Jul 11 PHP
laravel 关联关系遍历数组的例子
Oct 10 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
PHP 模板高级篇总结
2006/12/21 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
2013/04/22 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
浅谈js中的闭包
2015/03/16 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
微信小程序左右滑动的实现代码
2017/12/15 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
JS+JQuery实现无缝连接轮播图
2020/12/30 jQuery
python sort、sorted高级排序技巧
2014/11/21 Python
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python选课系统开发程序
2016/09/02 Python
详细介绍Python的鸭子类型
2016/09/12 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python3.6实现学生信息管理系统
2019/02/21 Python
Python3标准库之functools管理函数的工具详解
2020/02/27 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
优秀士兵先进事迹
2014/02/06 职场文书
投标担保书范文
2014/04/02 职场文书
七夕情人节促销方案
2014/06/07 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
劳模先进事迹材料
2014/12/24 职场文书
写给父母的感谢信
2015/01/22 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
Python中三种花式打印的示例详解
2022/03/19 Python