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 相关文章推荐
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
ThinkPHP中公共函数路径和配置项路径的映射分析
Nov 22 PHP
php字符串函数学习之substr()
Mar 27 PHP
PHP多态代码实例
Jun 26 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
Apr 08 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
PHP获取本周所有日期或者最近七天所有日期的方法
Jun 20 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
PHP项目多语言配置平台实现过程解析
May 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学习之function的用法
2012/07/14 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
Chrome Web App开发小结
2014/09/04 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
详谈js的变量提升以及使用方法
2018/10/06 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
element中的$confirm的使用
2020/04/26 Javascript
Python 第一步 hello world
2009/09/25 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
2017/09/05 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
平面设计岗位职责
2013/12/14 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
群众路线个人整改方案
2014/10/25 职场文书
人事文员岗位职责
2015/02/04 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
七一慰问简报
2015/07/20 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
html5表单的required属性使用
2021/07/07 HTML / CSS
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL