一段matlab的代码翻译成java的
def find_all_paths(graph, start, end, path=):
path = path +
if start == end:
return
if not graph.has_key(start):
return
paths =
for node in graph:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
麻烦帮忙翻译成java语言的, 没法翻译的地方麻烦帮忙加点注释, 非常感谢
------解决方案--------------------
String find_all_paths(Graph graph, Node start, Node end, Path path=){ //path=是个什么??
path = path + // 这句又是个什么,matlab里可以这么写?
if (start == end)
return ;
if (!graph.has_key(start))
return ;
paths = //同上
for( node in graph.nodes) // 理解为foreach,循环遍历graph里的所有节点
{ if (!path.has(node))
{
newpath = find_all_paths(graph, node, end, path);
for ( newpath in newpaths )
paths.append(newpath);
}
}
return paths;
}
写是可以这么写,但是有很多问题
Graph,Node,Path都是自定义的类,和matlab里的类是一样的
而且,其他的操作,如“=”,两个Node对象相等,这个得自己定义等等
我都想不明白,为啥要翻译呢?