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+APACHE实现用户论证的方法
Oct 09 PHP
discuz7 phpMysql操作类
Jun 21 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
php 目录遍历、删除 函数的使用介绍
Apr 28 PHP
解析PHP中ob_start()函数的用法
Jun 24 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
php set_include_path函数设置 include_path 配置选项
Oct 30 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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支持页面回退的两种方法[转]
2007/02/14 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
PHP实现添加购物车功能
2017/03/06 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
一百多行python代码实现抢票助手
2018/09/25 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
python调用webservice接口的实现
2019/07/12 Python
wxPython多个窗口的基本结构
2019/11/19 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
Python是如何进行类型转换的
2013/06/09 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
小摄影师教学反思
2014/04/27 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
材料员岗位职责
2015/02/10 职场文书