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中使用Sockets 从Usenet中获取文件
Jan 10 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
Nov 26 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
php读取文件内容的方法汇总
Jan 24 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
解决微信授权回调页面域名只能设置一个的问题
Dec 11 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP反射实际应用示例
Apr 03 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP调用API接口实现天气查询功能的示例
2017/09/21 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
ionic开发中点击input时键盘自动弹出
2016/12/23 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python删除某个目录文件夹的方法
2020/05/26 Python
python 下载m3u8视频的示例代码
2020/11/11 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
Marc Jacobs官方网站:美国奢侈品牌
2017/08/29 全球购物
娇韵诗Clarins意大利官方网站:法国天然护肤品牌
2020/03/11 全球购物
兵马俑导游词
2015/02/02 职场文书
清洁工工作总结
2015/08/11 职场文书
德劲DE1108畅想
2021/04/22 无线电
python调试工具Birdseye的使用教程
2021/05/25 Python