Я пытаюсь написать программу с использованием ориентированного графа (о котором я знаю, но никогда не реализовывал) для моделирования транспортной сети.
Пользователь вводит имя планеты, за которым следует целое число, представляющее общее количество узлов на графике. Затем пользователь будет проходить каждый узел один за другим. Они дадут ему имя, укажут количество соседей, которые есть у этого узла, а затем конкретные имена. Вход будет выглядеть так.
some_planet 4
node1 2 node2 node3
node2 1 node4
node3 1 node4
node4 1 node1
Затем я просто вывожу, до каких узлов node1 не может добраться. Однако у меня есть некоторые вопросы по поводу реализации этого.
1) Большой хранит эти вещи. Что такое легкий способ? Я думал о LinkedList и подумал, что свяжу места. Затем я мог бы поместить на них указатели, соответствующие любому вводу. Однако я понятия не имею, как сделать последнюю часть.
2) Следующий большой поиск по графу. Я планировал рекурсивный поиск в глубину. Что-то не так с этим алгоритмом, который вы видите? Мне нужно искать каждый узел по отдельности, поэтому мне придется увеличить это. Могу ли я просто бросить все в цикл for?
recursive-d-first-search(graph G, node start, node find)
if(start == find)
return true;
else
for every neighbor n of start
success = recursive-d-first-search(graph G, node n, node find);
if(success)
return true;
return false;