日期:2014-05-20  浏览次数:20658 次

一段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对象相等,这个得自己定义等等
我都想不明白,为啥要翻译呢?