有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的递归函数在循环中失败?

我用Java实现了一个递归函数。在x次循环之后,函数总是失败。我找不到它失败的原因。我一步一步地调试它,但当它失败时,我不知道为什么。我能得到帮助吗?代码片段

public void Eight_ConnectedComponent_Spreading_Recursion(int r, int c){
    Size s = ROI_GRAY.size();
    //Make 8 points of neighbours
    Vector<Point> filldata = new Vector<Point>(); 
    byte[] data = new byte[1]; 
    for(int row = -1; row < 2; row++){
        for(int col = -1; col < 2; col++){
            if((r+row >= 0 && r+row < s.height) && (c+col >= 0 && c+col < s.width))
            {
                ROI_GRAY.get(r+row, c+col, data);
                if(data[0] == WHITE)
                    filldata.add(new Point( r+row, c+col));
            }
        }
    }
    if(filldata.size() > 0){
        for (int row = 0; row < filldata.size() ; row++ ) { 
            ROI_GRAY.put((int)filldata.get(row).x, (int)filldata.get(row).y, (byte)BLACK);
        }
        while(filldata.size() > 0) {    
            if((int)filldata.get(0).x != r && (int)filldata.get(0).y != c)
                Eight_ConnectedComponent_Spreading_Recursion((int)filldata.get(0).x, (int)filldata.get(0).y);
            filldata.remove(0);
        }


    }
    filldata.trimToSize();  //

    return;
}

共 (0) 个答案