java - 如何使这个输出向后

标签 java arrays graph while-loop

所以我编写了一个在java中实现图形的程序,并且已经得到了我想要它工作的一切,除了以正确的顺序打印我的路径数组。

    public void printThePaths(int v) {
    for(int i = 0; i < path.length;i++){
        System.out.println("From " + v + " to " + i);
        int n = i;
        while(n != -1) {
            System.out.print(n);
            n = path[n];
        }
        System.out.println();
        //System.out.print(path[i] + ", ");
    }
    System.out.println();
}//end

此时路径数组如下所示:

path[] = {3,5,4,-1,4}

所以当我运行 printThePaths 方法时,它输出如下:

From 4 to 0
0324
From 4 to 1
154
From 4 to 2
24
From 4 to 3
324
From 4 to 4
4
From 4 to 5
54

嗯,路径是以相反的顺序打印的,我想知道以相反的方向打印它们的最佳方法是什么(又名从 4 到 0 是:4、3、2、0)。大家都明白,索引内的数字是该索引的父索引。

最佳答案

递归!

在您的方法中,将 while 循环替换为:

printPath( i );

然后添加该方法:

void printPath( int n ) {
    if ( n != -1 ) {
        printPath( path[n] );
        System.out.print( n );
    }
}

关于java - 如何使这个输出向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27369013/

相关文章:

file - Gnuplot : Size of points

java - 如何创建通过鼠标拖动更新的计数器?

java - 处理格式为 “cat file.txt | java YourMainClass” 的 Java 命令行参数

java多线程cpu利用率

c - 使用数组查找回文

python - Python 中的 Watts 和 Strogatz 图

java - 多次调用 java.util.zip.Deflater.setInput 在第一次之后什么都不做

arrays - 查找按升序排序的矩阵的列索引和行索引

javascript - .forEach 索引超出数组长度

c++ - 如何在我自己的头文件中不包含boost头文件