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
php常用字符串比较函数实例汇总
Nov 24 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
PHP类的封装与继承详解
Sep 29 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
php英文单词统计器
Jun 23 PHP
PHP获取用户客户端真实IP的解决方案
Oct 10 PHP
PHP查询分页的实现代码
Jun 09 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 PHP
PHP 代码简洁之道(小结)
Oct 16 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 压缩文件夹的类代码
2009/11/05 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php检查页面是否被百度收录
2015/10/28 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
Javascript delete 引用类型对象
2013/11/01 Javascript
javascript对下拉列表框(select)的操作实例讲解
2013/11/29 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
jQuery插件uploadify实现ajax效果的图片上传
2016/06/18 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
详解webpack与SPA实践之开发环境搭建
2017/12/18 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
vue 路由子组件created和mounted不起作用的解决方法
2019/11/05 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Pycharm设置utf-8自动显示方法
2019/01/17 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
广告设计专业自荐信范文
2013/11/14 职场文书
委托公证书范本
2014/04/03 职场文书
《春雨》教学反思
2014/04/24 职场文书
国际贸易专业求职信
2014/06/04 职场文书
监察建议书
2015/02/04 职场文书
银行求职信怎么写
2019/06/20 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android