java - 如何使用递归搜索二维数组中的元素

标签 java arrays recursion

我有一个二维字符数组,我正在尝试使用递归查找特定字符。

public class Test {

char arry [][] = {{'1',' ','B'},
                  {'C','K','M'},
                  {'H','R','P'}
};

public Test(){
    recursion(0,0,arry[0][0]);

}
private void recursion(int row, int col, char c) {
    if(c==' '){
        System.out.print("Location: " + row + " " + col );
    }else
    {
        if(col+1<arry[0].length){
            recursion(row,col,c);
        }
                    //System.out.print(arry[0][1]);

    }

}
public static void main(String[] args) {

    new Test();
}

}

但这给了我一个堆栈溢出。如何使用递归在二维数组中找到元素。

最佳答案

您的 if 语句似乎没有正确执行。您正在检查 if c == "",尽管我认为您的意思是检查 if array[row][col]==c。另外,似乎您从未真正增加 row 和 col 的值,因此递归本身不断发生。由于递归值永远不会改变,并且检查永远不可能为真,这最终将导致堆栈溢出。

尝试以下方法:

private void recursion(int row, int col, char c) {
    if(array[row][col]==c){
        System.out.print("Location: " + row + " " + col );
    } else {
        if(col+1<array[0].length){
            recursion(row,col+1,c);
        } else if(row + 1<array[1].length){
            recursion(row+1,0,c);
        } else {
            System.out.print("Does not exist");
            //System.out.print(arry[0][1]); 
        }
    }
}

关于java - 如何使用递归搜索二维数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22434762/

相关文章:

java - 在java中创建自定义对象数组

arrays - 在 Google 表格中将两列表转换为一张列表

c++ - 使用自己的指针遍历数组元素

java - 递归和数组

java - Spring Boot Mongo DB .yml 配置

java - 调整大小时,JFrame 在 Windows 8.1 上卡住

java - 将在一个类中创建的对象传递给另一个类

c++ - 从递归返回结果的最有效方法是什么?

javascript - 这个递归函数是怎么结束的呢?

java - 如何创建 FindByIndexNameSessionRepository 的 bean