Реализация дерева с различными типами данных узлов

Я должен комбинаторно подсчитать все возможные случаи для задачи. Я хочу сделать дерево для этой цели. Есть несколько рабочих мест, и каждая работа имеет несколько подзадач. Есть много агентов, доступных для работы. Предположим, что задание Job1 Subjob1 может быть выполнено агентом 1 или 2, а затем задание Job 1 Subjob2 будет выполнено любым из агентов. И тогда работа 2 будет запущена. и так далее.
Поскольку узлы меняются, а также изменяется количество дочерних узлов на разных уровнях, у меня следующие вопросы:

  1. Какова лучшая структура данных для реализации того же?

  2. Каков наилучший способ пройти по дереву, используя рекомендованную вами структуру данных?

пожалуйста, дайте конкретные примеры C ++ / Java или веб-источники, а не только абстрактные советы, так как я хорошо разбираюсь в кодировании.

РЕДАКТИРОВАТЬ:

Пожалуйста, обратитесь к блок-схеме дерева, которое я имею в виду.

введите описание изображения здесь

-2

Решение

Хммм, я не думаю, что дерево — лучшая структура данных для ваших требований. Я предлагаю std::vector из Jobs, каждый Job должен иметь контейнер subjobs

Ваше расписание может перебирать вектор намного проще, чем дерево.

Редактировать 1: код

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

std::vector<Job> task_container;
1

Другие решения


По вопросам рекламы [email protected]