我刚刚开始学习图和邻接矩阵,我必须从一个加权图的文本文件创建一个邻接矩阵。文本文件将如下所示:
0 4 5 0 6
4 0 0 3 6
5 0 0 0 8
0 3 0 0 0
6 6 8 0 0(我们可以假设矩阵总是对称的)
在此基础上,我们必须创建一个方法来执行广度优先搜索和深度优先搜索。我理解图和搜索的理论,但我在编码时遇到了麻烦。此外,如果你可以做sudo代码而不是实际的代码,这样我仍然可以自己学习/做它,那就太好了!非常感谢!
发布于 2018-10-10 04:16:51
对于深度优先搜索,我将递归地使用一个函数,并传递当前节点的int和其中已访问的节点列表,并重复此操作,直到所有节点都被访问,然后返回递归,在所有节点都已被访问时返回到下一个节点
check node(currentNode, ListOfVisited)
check=0
while(check!=n)//where n is the size of the array
if (matrix.get(check,currentNode) is not in ListOFVisited)
add n to listOfVisted
checkNode(currentNode, ListOfVisited)
end while//此代码将在函数"back up“时调用
check++
end while对于bredth第一次搜索,我也会递归地执行,但首先检查所有邻居,并将它们保留在队列中,然后在队列中循环
queue is empty
checknode(node, visited)
check=0
while(check!=n)
if (matrix.get(check,currentNode) isn't in visited)
queue.add(check)
end if
check++
end while
while(queue isn't empty)
checkNode(queue.pop)
end whilehttps://stackoverflow.com/questions/52728329
复制相似问题