我有一个需要在java中实现DFS的作业。
刺伤如下:
public List<Integer> DepthFirstList(Integer v)
{
List<Integer> vertices = new ArrayList<Integer>();
Deque<Integer> toExplore = new ArrayDeque<Integer>();
List<Integer> visited = new ArrayList<Integer>();
return vertices;
}
它接受v的参数(作为整数的起点),并遍历所有图形。 我知道toExplore是所有节点序列的堆栈。 “visited”是包含节点是否被访问的数组(通过分配“0”或“1”),并且它们被初始化为全“0”。 但是需要返回的“顶点”是什么?
典型的图表如下所示:
9//Number of vertices
0: {1,6} {8,2} {5,4}//{edge with, weight}
1: {0,6} {2,7} {4,9}
2: {3,4} {4,3} {1,7}
3: {1,5} {5,3}
4: {2,3} {6,1}
5: {3,3} {0,7}
6: {4,1} {1,2}
已经编写了读取输入的代码。
答案 0 :(得分:0)
但是需要返回的“顶点”是什么?
根据函数的名称,我想你应该按访问顺序返回一个访问顶点列表。
除非我遗漏了某些内容,否则这与visited
相同,这有点多余。但visited
实际上应该是Set
才能进行有效查找,这会让vertices
变得更有意义。
但我无法确定你的老师在想什么。你应该去找他们确认。
我假设(基于你的问题)你不是在寻求帮助来编写这个功能,只是理解这个部分。