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上的memcache和memcached两个pecl库
Mar 29 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
ThinkPHP之R方法实例详解
Jun 20 PHP
PHP采用curl模仿用户登陆新浪微博发微博的方法
Nov 07 PHP
php获取文章上一页与下一页的方法
Dec 01 PHP
php判断当前用户已在别处登录的方法
Jan 06 PHP
Laravel中注册Facades的步骤详解
Mar 16 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JS实现拖动滚动条评分的效果代码分享
2016/09/29 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
Vuex实现数据增加和删除功能
2019/11/11 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
JavaScript实现手风琴效果
2021/02/18 Javascript
python使用matplotlib绘制柱状图教程
2017/02/08 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python实现给微信指定好友定时发送消息
2019/04/29 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
中专毕业生自我鉴定
2014/02/02 职场文书
辅导员评语
2014/05/04 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
法人代表证明书范本
2015/06/18 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL