-1

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

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

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

请提供具体的 C++/Java 示例或网络资源,而不仅仅是抽象的建议,因为我在编码方面是绿色的。

编辑:

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

在此处输入图像描述

4

1 回答 1

1

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

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

编辑1:代码

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

std::vector<Job> task_container;
于 2015-01-28T19:00:08.693 回答