4
生成树中所有节点的所有后代的最有效方法
我正在寻找获取树的最有效算法(存储为边列表;或存储为从父节点到子节点列表的映射列表);并为每个节点生成从其派生的所有节点的列表(叶级和非叶级)。 由于规模的原因,实现必须通过循环而不是撤回。理想情况下应为O(N)。 该SO问题涵盖了一个合理合理的标准解决方案,用于为树中的一个节点找到答案。但是很明显,在每个树节点上重复该算法都是非常低效的(在我的脑海中,O(NlogN)至O(N ^ 2))。 树的根是已知的。该树具有绝对任意的形状(例如,不是N元,没有以任何方式平衡,形状或形式,深度也不统一)-有些节点有1-2个子节点,有些节点有30K个子节点。 在实际水平上(尽管它不应该影响算法),该树具有约100K-200K节点。