如何向后输出此输出

时间:2014-12-08 23:36:51

标签: 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)。大家都明白,索引中的数字就是索引的父级。

1 个答案:

答案 0 :(得分:2)

递归!

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

printPath( i );

然后添加该方法:

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