使用不同数据类型的节点实现树
Implementing tree with different data types of nodes
我必须组合计算任务的所有可能情况。我想为此制作一棵树。有几个工作,每个工作都有几个子工作。有许多代理人可以完成这些工作。假设 Job1 Subjob1 可以由 Agent 1 或 2 完成,那么 Job 1 Sub Job2 将由其中一个 agent 完成。然后作业 2 将开始。等等。
由于节点在变化,子节点的数量也在不同级别发生变化,我的问题是:
最好的数据结构是什么?
使用您推荐的数据结构遍历树的最佳方法是什么?
请也提供具体的 C++/Java 示例或网络资源,而不仅仅是抽象的建议,因为我不擅长编码。
编辑:
请参考我心中的树的流程图。
嗯,我不认为树是满足您要求的最佳数据结构。我建议 std::vector
的 Jobs
。每个 Job
应该有一个 subjobs
的容器
您的日程表可以比树更容易地遍历向量。
编辑 1:代码
class Subjob;
class Job
{
std::vector<Subjob> other_jobs;
};
std::vector<Job> task_container;
我必须组合计算任务的所有可能情况。我想为此制作一棵树。有几个工作,每个工作都有几个子工作。有许多代理人可以完成这些工作。假设 Job1 Subjob1 可以由 Agent 1 或 2 完成,那么 Job 1 Sub Job2 将由其中一个 agent 完成。然后作业 2 将开始。等等。 由于节点在变化,子节点的数量也在不同级别发生变化,我的问题是:
最好的数据结构是什么?
使用您推荐的数据结构遍历树的最佳方法是什么?
请也提供具体的 C++/Java 示例或网络资源,而不仅仅是抽象的建议,因为我不擅长编码。
编辑:
请参考我心中的树的流程图。
嗯,我不认为树是满足您要求的最佳数据结构。我建议 std::vector
的 Jobs
。每个 Job
应该有一个 subjobs
您的日程表可以比树更容易地遍历向量。
编辑 1:代码
class Subjob;
class Job
{
std::vector<Subjob> other_jobs;
};
std::vector<Job> task_container;