📖 功能概述
输入一个树形数据结构和待删除的分支索引列表,组件首先深拷贝原数据树(不修改源数据),
然后遍历索引列表,依次删除对应路径的分支。支持同时删除多条分支,索引超出范围时给出警告提示。
索引规则:分支索引按照树形数据 {0;0}, {0;1}, {1;0}, ... 的自然排列顺序编号,
从 0 开始计数。与 提取分支(GetTreeBranch)使用同一套编号体系。
🧠 核心逻辑三步法
Step 1 — 深拷贝:调用 gooTree.Duplicate() 创建原始数据树的完全副本,避免破坏输入数据。
Step 2 — 遍历删除:遍历索引列表,对每一个索引:
├─ 在 0 ~ pathCount-1 范围内?→ 调用 RemovePath(paths[index]) 删除该分支
└─ 超出范围?→ 发送运行时警告,跳过该索引
Step 3 — 输出:将修改后的数据树副本设为输出。
📥 输入参数
| 名称 | 类型 | 必填 | 说明 |
| Tree (T) |
Generic |
必需 |
源数据树,需要从中删除分支。支持任意 GH_Goo 类型。 |
| Index (i) |
Integer |
必需 |
需要删除的分支索引列表,默认值为 {0}。索引基于树形数据自然排列顺序(0-based)。 |
📤 输出参数
| 名称 | 类型 | 说明 |
| List (L) |
Generic |
删除指定分支后的数据树(树形结构)。如果删除了所有分支,输出为空树。 |
📋 使用示例
输入树:
{0;0} → [A, B, C]
{0;1} → [D, E]
{0;2} → [F, G, H]
{1;0} → [I, J]
输入索引:i = {0, 2}
运算:删除路径 {0;0} 和 {0;2} 的分支
输出树:
{0;1} → [D, E]
{1;0} → [I, J]
⚠️ 注意事项:
- 索引基于删除前原始数据树的分支排列顺序,索引值在删除过程中不会因为中间删除而重算。
- 索引超出 0 ~ (pathCount - 1) 范围时,仅给出警告提示,不会中断程序执行。
- 组件通过
Duplicate() 深拷贝操作,不会修改原始输入数据树。
- 如需「提取分支」而不是「删除分支」,请使用提取分支(GetTreeBranch)组件。
📋 组件信息
| 名称 | 删除分支 |
| 英文名 | Delete Tree Branch (GT) |
| 分类 | LK → Tree |
| 基类 | GH_Component |
| GUID | C4C4FE42-318F-40C8-80AB-A60BB1CB9C81 |