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 相关文章推荐
使用HMAC-SHA1签名方法详解
Jun 26 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
php实现的通用图片处理类
Mar 24 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
Feb 15 PHP
THINKPHP截取中文字符串函数实例代码
Mar 20 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
php 使用 __call实现重载功能示例
Nov 18 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 session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
简单实现php上传文件功能
2017/09/21 PHP
用jquery设置按钮的disabled属性的实现代码
2010/11/28 Javascript
页面实时更新时间的JS实例代码
2013/12/18 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
浅谈通过JS拦截 pushState和replaceState事件
2017/07/21 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
Python修改Excel数据的实例代码
2013/11/01 Python
python简单判断序列是否为空的方法
2015/06/30 Python
Python模拟三级菜单效果
2017/09/11 Python
详解TensorFlow查看ckpt中变量的几种方法
2018/06/19 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python创建子类的方法分析
2019/11/28 Python
浅析Python 多行匹配模式
2020/07/24 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
一家外企的面试题目(C/C++面试题,C语言面试题)
2014/03/24 面试题
幼儿园中班下学期评语
2014/04/18 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
2014年综治宣传月活动总结
2014/04/28 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
基层党员群众路线教育实践活动个人对照检查材料思想汇报
2014/10/05 职场文书
志愿者服务活动总结报告
2015/05/06 职场文书
超级实用的公文标题大全!
2019/07/19 职场文书
创业计划书之面包店
2019/09/12 职场文书