Я сделал кое-что в компьютерной 3D-графике, но я немного новичок в теории графов.В частности, я искал и пытался решить мою проблему, используя поиск в глубину (DFS), как описано в «Освоении Алгора с Perl» (Jarkko Hietaniemi).До сих пор я не смог получить его :-( но я почти уверен, что DFS - это то, что я хочу.
Это не обязательно должно быть в Perl (просто пытаться выучить язык), ноJava или C ++ были бы хороши.
У меня есть 53 вектора позиции, то есть (x, y, z), которые я представляю как
(x1,y1,z1)
(x2,y2,z2)
.
.
.
(x53,y53,z53)
Затем я запускаю написанную мной программу Perlчтобы генерировать случайные связи между узлами, назначая максимальное количество прыжков, скажем, 6. Таким образом, топология может выглядеть следующим образом:
5 <-- node 1 has 5 links to
18 4 23 6 48, <-- node 18, node 4, node 23, node 6, node 48
2 <-- node 2 has 2 links to
14 5, <-- node 14, node 5
0 <-- node 3 is a leaf since it has no links
.
.
.
2 <-- node 18 has 2 links to
3 17 <-- node 3, node 17
.
.
.
4 <-- node 53 has 4 links to
10 46 49 22 <-- node 10, node 46, node 49, node 22
Я бы хотел определить путь "беги", пока я не достигну раковины,то есть 0. например, от узла 1 к узлу 18 к узлу 3, ... Этот путь уже завершен ...
Я думаю, что хочу DFS, это похоже на рекурсивное упражнение.
Если кто-то понимает и может дать мне код, это было бы здорово. Я не студент, но мне 51 год! Может быть, это как-то связано со мной, но я не понимаю: -)
Я посмотрел намой q и по какой-то причине (вероятно, я :-( он был "искажен"
Топология должна выглядеть так: 5 <- узел 1 имеет 5 ссылок; 18 423 6 48 <- узел 18, узел 4, узел 23, узел 6, узел 48 2 <- узел 2 имеет 2 ссылки;14 5, <- узел 14, узел 5 0 <- узел 3 является листом, поскольку у него нет ссылок.,,2 <- узел 18 имеет 2 ссылки;3 17 <- узел 3, узел 17.,,4 <- узел 53 имеет 4 ссылки;10 46 49 22 <- узел 10, узел 46, узел 49, узел 22 * 1020 * <p>Просто хочу прояснить ситуацию, если кто-то может предоставить код (Perl, Java, c ++ / C ...)
Спасибо.