加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 教程 > 正文

php树型类实例

发布时间:2022-06-22 08:50:21 所属栏目:教程 来源:互联网
导读:这篇文章主要介绍了php树型类,涉及数据结构与算法中的树结构,实例相对简单易懂,对于学习数据结构有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲述了php树型类。分享给大家供大家参考。具体分析如下: 该实例原理简单,学过数据结构的一看就明白是什么
  这篇文章主要介绍了php树型类,涉及数据结构与算法中的树结构,实例相对简单易懂,对于学习数据结构有一定的参考借鉴价值,需要的朋友可以参考下
 
  本文实例讲述了php树型类。分享给大家供大家参考。具体分析如下:
 
  该实例原理简单,学过数据结构的一看就明白是什么道理了,不过今天在使用时数据中出现了子节点id(71)小于父节点id(104).导致部分子节点没被存储入数组,修改了一下,实例代码如下:
 
  <?php
  class tree
  {
      var $data = array();
      var $child = array(-1=>array());
      var $layer = array(-1=>-1);
      var $parent = array();
      var $num = array();
   
      function setnode($id, $parent, $value,$num=0)
      {
          $parent = $parent ? $parent : 0;
   
          $this->data[$id]  = $value;
          $this->num[$id]      = $num;
          if (!isset($this->child[$id])) $this->child[$id] = array();
          $this->child[$parent][] = $id;
          $this->parent[$id]  = $parent;
   
          if (!isset($this->layer[$parent]) && $parent == 0)
          {
             $this->layer[$id] = 0;
          }
          else
          {
              $this->layer[$id] = $this->layer[$parent] + 1;
          }
      }
   
      function getlist(&$tree, $root= 0)
      {
          foreach ($this->child[$root] as $key=>$id)
          {
              $tree[] = $id;
              if($this->child[$id]) $this->getlist($tree, $id);
          }
      }
   
      function getvalue($id)
      {
     if($this->layer[$id]==0)
     {
      return $this->data[$id];
     }
     else
     {
      return $leftmar.$this->data[$id];
     }
      }
   
      function getnum($id)
      {
     return $this->num[$id];
      }
   
      function getbitvalue($id)
      {
     return $this->data[$id];
      }
   
      function getlayer($id, $space = false)
      {
          return $space ? str_repeat($space, $this->layer[$id]) : $this->layer[$id];
      }
   
      function getparent($id)
      {
          return $this->parent[$id];
      }
   
      function getparents($id)
      {
          while ($this->parent[$id] != -1)
          {
              $id = $parent[$this->layer[$id]] = $this->parent[$id];
          }
   
          ksort($parent);
          reset($parent);
   
          return $parent;
      }
   
      function getchild($id)
      {
          return $this->child[$id];
      }
   
      function getchilds($id = 0)
      {
          $child = array($id);
          $this->getlist($child, $id);
   
          return $child;
      } //www.phpfensi.com
   
      function printdata()
      {
          return $this->layer;
      }
  }
  ?>
  希望本文所述对大家的PHP程序设计有所帮助。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读