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中模拟POST传递数据的两种方法分享
Sep 16 PHP
PHP URL路由类实例
Nov 12 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
PHP遍历并打印指定目录下所有文件实例
Feb 10 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
php数组去除空值函数分享
Feb 02 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
yii2-GridView在开发中常用的功能及技巧总结
Jan 07 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
YII2 全局异常处理深入讲解
Mar 24 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/01 无线电
使用 MySQL Date/Time 类型
2008/03/26 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
Prototype Date对象 学习
2009/07/12 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
解决vue 中 echart 在子组件中只显示一次的问题
2018/08/07 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
Mio Skincare美国官网:身体紧致及孕期身体护理
2017/03/05 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
市场营销专业推荐信
2013/11/03 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers