<?php/** *
* 查詢一棵樹的子樹
* @var unknown_type
* @author tianquanjun
* */
class demo
//遍歷樹中的每乙個節點,看其是否為指點節點的子樹節點
public function handle($id)
} return $data;
} //判斷節點是否是指定id的子樹節點
private function is_son_node($id,$node)
//節點的父id恰好是指定的節點,是其兒子節點
if($node['pid'] == $id)else }
//根據id獲取父節點完整資訊
private function get_parent_node($id)
} }}//構造一棵樹,陣列表示.id表示節點本身編號,pid表示父節點的編號
$tree = array(
array('id'=>1,'pid'=>'','name'=>'a'),//root
array('id'=>2,'pid'=>'1','name'=>'b'),
array('id'=>3,'pid'=>'1','name'=>'c'),
array('id'=>4,'pid'=>'1','name'=>'d'),
array('id'=>5,'pid'=>'2','name'=>'e'),
array('id'=>6,'pid'=>'2','name'=>'f'),
array('id'=>7,'pid'=>'3','name'=>'g'),
array('id'=>8,'pid'=>'4','name'=>'h'),
array('id'=>9,'pid'=>'7','name'=>'i'),
array('id'=>10,'pid'=>'7','name'=>'j'),
array('id'=>11,'pid'=>'8','name'=>'k'),
);$id = 2;
$obj = new demo($tree);
$result = $obj->handle($id);
echo "";
print_r($result);
Git 4 子樹拉取指令碼
windows指令碼指令碼放專案根目錄下,具體根據自己專案環境來!命令解釋 拉取最新 刪除子樹 提交新增子樹 再提交 windows merge common.bat git pull rd s q 子樹包名 git add a git commit m delete common git push...
最大子樹組(分治演算法)
最大子樹組 include 返回乙個下標元組劃定跨越中點的最大子陣列的邊界,並返回最大子陣列中值的和 int find max crossing subarray int a,int low,int mid,int high sum 0 for j mid 1 j high j return lef...
演算法面試題 拓撲結構相同子樹
題目 解析 這個題目的目的很明確,就是判斷a是否包含b。這裡的做法是對兩顆二叉樹分別求先序遍歷,接著比較。但是要注意的是,先序遍歷需要進行特殊處理。舉例 先對整a棵樹進行先序遍歷,序列為12453。情況一 假設b二叉樹只有乙個節點3,那麼b子樹的先序遍歷序列就是3,接著判斷3是否為12453的子串,...