java - 深度优先搜索 - 在树上执行DFS

时间:2010-12-29 23:50:55

标签: java depth-first-search

我试图在包含26个节点的最小生成树上执行DFS。 节点被命名为“A”到“Z”,树是无向的。

我在这里有一个名为DFS的空函数,我正在尝试编写,其中(我推测)将树(2D数组)作为startNode(随机选择的节点'M')和endNode(随机选择的节点') Z')。

连接节点的权重在2D数组参数中标识,但我如何实际开始访问节点?

所需要的只是按DFS遍历的顺序打印每个nodeName。

我是否需要为2d数组中的每个节点创建一个Node_class?

1 个答案:

答案 0 :(得分:1)

深入第一次搜索时,您需要确保在向上移动树以获取下一个分支之前,您正在遍历边缘的整个长度到叶节点。我不确定我是否理解问题的目标,但我相信你所得到的是正确的。为了跟踪访问哪个节点以及任何给定节点的总距离/权重是从起始节点开始的,您需要跟踪额外信息,即是否已经访问过,以及每个节点的最低权重是多少。假设您创建了一个“包装”类,它将携带这两个额外的信息,默认将被访问为false并将权重默认为无穷大或某个非常大的数字。 http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm