• 技术文章 >后端开发 >php教程

    php链表用法实例分析_PHP

    2016-05-30 08:46:51原创424

    本文实例讲述了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程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 链表
    上一篇:微信公众平台开发之配置与请求_PHP 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 设计API接口时,要注意这些地方!• PHP网站常见一些安全漏洞及防御方法• 一个分页的论坛_PHP教程• php 中文处理函数集合_php技巧• PHP编程中的__clone()方法使用详解_PHP
    1/1

    PHP中文网