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 出现乱码的解决方法
Aug 08 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
php实现指定字符串中查找子字符串的方法
Mar 17 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
php面向对象值单例模式
May 03 PHP
微信支付开发发货通知实例
Jul 12 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP+Mysql无刷新问答评论系统(源码)
Dec 20 PHP
Yii2数据库操作常用方法小结
May 04 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 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
PHP5/ZendEngine2的改进
2006/10/09 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
php微信公众平台开发类实例
2015/04/01 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP编程实现的TCP服务端和客户端功能示例
2018/04/13 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
一分钟理解js闭包
2016/05/04 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
2018/09/21 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
Python脚本实现格式化css文件
2015/04/08 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
2019/08/28 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
EntityManager都有哪些方法
2013/11/01 面试题
经理秘书岗位职责
2013/11/14 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
25岁生日感言
2014/01/13 职场文书
大型车展策划方案
2014/02/01 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
公司会议策划方案
2014/05/17 职场文书
社区五一劳动节活动总结
2015/02/09 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
解决vue中provide inject的响应式监听
2022/04/19 Vue.js