php链表用法实例分析


Posted in PHP onJuly 09, 2015

本文实例讲述了php链表用法。分享给大家供大家参考。具体如下:

这里简单介绍了php链表的基本用法,包括链表节点的创建、遍历、更新等操作。

<?php
/**
 * @author MzXy
 * @copyright 2011
 * @param PHP链表
 */
/**
*
*节点类
*/
class Node
{
  private $Data;//节点数据
  private $Next;//下一节点
  public function setData($value){
    $this->Data=$value;
  }
  public function setNext($value){
     $this->Next=$value;
  }  
  public function getData(){
    return $this->Data;
  }
  public function getNext(){
    return $this->Next;
  }
  public function __construct($data,$next){
    $this->setData($data);
    $this->setNext($next);
  }
}//功能类
class LinkList
{
  private $header;//头节点
  private $size;//长度
  public function getSize(){
    $i=0;
    $node=$this->header;
    while($node->getNext()!=null)
    {  $i++;
      $node=$node->getNext();
    }
   return $i;
  }
  public function setHeader($value){
    $this->header=$value;
  }
  public function getHeader(){
    return $this->header;
  }
  public function __construct(){
     header("content-type:text/html; charset=utf-8");
    $this->setHeader(new Node(null,null));
  }
  /**
  *@author MzXy
  *@param $data--要添加节点的数据
  * 
  */
  public function add($data)
  {
    $node=$this->header;
    while($node->getNext()!=null)
    {
      $node=$node->getNext();
    }
    $node->setNext(new Node($data,null));
  }
   /**
  *@author MzXy
  *@param $data--要移除节点的数据
  * 
  */
  public function removeAt($data)
  {
    $node=$this->header;
    while($node->getData()!=$data)
    {
      $node=$node->getNext();
    }
    $node->setNext($node->getNext());
    $node->setData($node->getNext()->getData());
  }
   /**
  *@author MzXy
  *@param 遍历
  * 
  */
  public function get()
  {
    $node=$this->header;
    if($node->getNext()==null){
      print("数据集为空!");
      return;
    }
    while($node->getNext()!=null)
    {
      print($node->getNext()->getData());
      if($node->getNext()->getNext()==null){break;}
      $node=$node->getNext();
    }
  }
   /**
  *@author MzXy
  *@param $data--要访问的节点的数据
  * @param 此方法只是演示不具有实际意义
  * 
  */
  public function getAt($data)
  {
    $node=$this->header->getNext();
     if($node->getNext()==null){
      print("数据集为空!");
      return;
    }
    while($node->getData()!=$data)
    {
      if($node->getNext()==null){break;}
      $node=$node->getNext();
    }
    return $node->getData();    
  }
   /**
  *@author MzXy
  *@param $value--需要更新的节点的原数据 --$initial---更新后的数据
  * 
  */
  public function update($initial,$value)
  {
     $node=$this->header->getNext();
     if($node->getNext()==null){
      print("数据集为空!");
      return;
    }
    while($node->getData()!=$data)
    {
      if($node->getNext()==null){break;}
      $node=$node->getNext();
    }
     $node->setData($initial);   
  }
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP安全编程之加密功能
Oct 09 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
解析PHP处理换行符的问题 \r\n
Jun 13 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
深入理解PHP中的global
Aug 19 PHP
浅谈php命令行用法
Feb 04 PHP
PHP数组相关函数汇总
Mar 24 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
PHP实现微信对账单处理
Oct 01 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 PHP
php结合curl实现多线程抓取
Jul 09 #PHP
php基本函数汇总
Jul 09 #PHP
php+curl 发送图片处理代码分享
Jul 09 #PHP
在Debian系统下配置LNMP的教程
Jul 09 #PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 #PHP
php将html转成wml的WAP标记语言实例
Jul 08 #PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 #PHP
You might like
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
PHP图片处理之图片背景、画布操作
2014/11/19 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
2017/03/29 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
JavaScript 私有成员分析
2009/01/13 Javascript
一句话JavaScript表单验证代码
2009/08/02 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
详解javascript事件冒泡
2016/01/09 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
Vue 使用中的小技巧
2018/04/26 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
jQuery实现日历效果
2020/09/11 jQuery
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python 文件操作实现代码
2009/10/07 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
2020/02/28 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
iphoneX 适配客户端H5页面的方法教程
2017/12/08 HTML / CSS
战友聚会邀请函
2014/01/18 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL