提取分支 · Get Tree Branch

按索引从树形数据中提取指定分支,同时返回原路径信息
📂 LK → Tree 📄 GetTreeBranch.cs 🔍 数据提取 📌 路径追踪

📖 功能概述

输入一个树形数据结构和分支索引列表,从原数据树中提取出指定索引对应的分支数据,并以树形结构输出。 同时额外输出一个路径信息树,记录每个被提取分支的原始路径,方便溯源。

与「删除分支」的区别:提取分支是"保留指定分支,丢弃其余";删除分支是"删除指定分支,保留其余"。 两者互为互补操作。

🧠 核心算法:按索引提取

输入:数据树 + 索引列表(如 {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)

📥 输入参数

名称类型必填说明
Tree (T) Generic 必需 源数据树,需要从中提取分支。
Index (i) Integer 必需 待提取的分支索引列表,默认值为 {0}。索引按树形数据自然排列顺序从 0 开始编号。

📤 输出参数

名称类型说明
List (L) Generic 提取的分支数据,以树形结构输出,保持原分支路径。
pathList (P) Generic 每个被提取分支的原始路径信息树。路径为 {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}]
⚠️ 注意事项:
  • 索引超出 0 ~ (pathCount - 1) 范围时,仅警告提示,继续处理其余有效索引。
  • 提取的分支数据以树形结构输出(而非列表),保留原分支的路径信息。
  • 若多次提取相同分支,输出树中该路径会被后续数据覆盖(AddRange 追加)。
  • 路径信息树(P)可以用于后续的路径还原或数据标记。

📋 组件信息

名称提取分支
英文名Get Tree Branch (GT)
分类LK → Tree
基类GH_Component
GUIDE1FA71E8-6796-4646-9C47-830D1F1612B0