我在 3D 计算机图形学方面做过一些工作,但对图论有点陌生。特别是,我一直在研究并尝试使用深度优先搜索 (DFS) 来解决我的问题,如 Mastering Algors w/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 4 23 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
只是想清楚以防有人可以提供代码(Perl、Java、c++/C ...)
谢谢。