📖 功能概述
输入一个树形数据结构和分支索引列表,从原数据树中提取出指定索引对应的分支数据,并以树形结构输出。
同时额外输出一个路径信息树,记录每个被提取分支的原始路径,方便溯源。
与「删除分支」的区别:提取分支是"保留指定分支,丢弃其余";删除分支是"删除指定分支,保留其余"。
两者互为互补操作。
🧠 核心算法:按索引提取
输入:数据树 + 索引列表(如 {0, 2, 5})
对每个索引 i:
1. 检查边界:0 ≤ i < paths.Count
2. 获取路径:paths[i] (如 {0;2;1})
3. 读取分支:gooTree.get_Branch(pth)
4. 写入输出树:将分支数据保持原路径写入 dataTree
5. 记录路径信息:将原路径作为数据,以新路径 {i} 写入 resultPth
输出 1:提取的分支数据树(树形,保持原路径)
输出 2:原路径信息树(树形,路径为 {i},值为原 GH_Path)
📋 使用示例
输入树:
{0;0} → [A,B,C]
{0;1} → [D,E]
{0;2} → [F,G,H]
{1;0} → [I,J]
输入索引:i = {1, 3}
提取结果(L):
{0;1} → [D,E](保持原路径)
{1;0} → [I,J](保持原路径)
路径信息(P):
{0} → [{0;1}]
{1} → [{1;0}]