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 SQL Injection with MySQL
Feb 27 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
May 07 PHP
php根据一个给定范围和步进生成数组的方法
Jun 19 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
Jul 01 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 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中删除变量时unset()和null的区别分析
2011/01/27 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
UpdatePanel和Jquery冲突的解决方法
2013/04/01 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
js制作可以延时消失的菜单
2017/01/13 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
2019/07/13 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[05:31]干嘛呢兄弟!DOTA2 TI9语音轮盘部分出处
2019/05/14 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
Html5 canvas实现粒子时钟的示例代码
2018/09/06 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
数学检讨书1000字
2014/02/24 职场文书
收银员岗位职责
2015/02/03 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python