使用不同数据类型的节点实现树

时间:2015-01-28 17:54:18

标签: java c++ tree tree-search

我必须组合计算任务的所有可能情况。我想为此目的做一棵树。有几个工作,每个工作有几个子工作。有许多代理可以完成这些工作。假设Job1 Subjob1可以由代理1或2完成,则Job 1 Sub Job2将由任一代理完成。然后Job 2将启动。等等。 由于节点是变化的,并且子节点的数量在不同的级别上发生变化,我的问题是:

  1. 实现相同的最佳数据结构是什么?

  2. 使用您推荐的数据结构遍历树的最佳方法是什么?

  3. 请提供具体的C ++ / Java示例或Web源代码,而不仅仅是抽象建议,因为我在编码时是绿色的。

    修改

    请参阅我想到的树的流程图。

    enter image description here

1 个答案:

答案 0 :(得分:1)

嗯,我认为树不是满足您要求的最佳数据结构。我建议使用std::vector Jobs。每个Job都应该有一个subjobs

的容器

您的日程安排可以比树更容易地遍历向量。

编辑1:代码

class Subjob;
class Job
{
  std::vector<Subjob> other_jobs;
};

std::vector<Job> task_container;