遞歸函數調用在達到限制後突然發生了故障。用於使用n元樹節點的循環遞歸
當從main調用函數時,首先傳遞根節點,然後在循環中檢查根節點的子節點的大小值,並遞歸調用該子節點上的相同函數以設置其大小值。
我的輸入是很大的樹。當我在設置樹中元素的大小之前打印n-ary樹時,列表將獲得所有元素的打印。但是在setsize()遞歸過程中,執行會在一個特定的點上無意義地掛起。每次執行都停止在同一個元素上。如果我在創建n元樹時從元素中刪除元素後掛起的元素,則執行成功並且不會掛起。
我試着增加-Xss -Xmx -Xss。仍然沒有用。
我必須使用線程或請讓我知道是否有任何問題在我的下面的遞歸方法爲上面解釋的函數實現。謝謝!!
public void setsize(Element inEle){
for(int i =0;i<inEle.children.size();i++){
if(inEle.children.get(i).size==0)
{
this.setsize(inEle.children.get(i));
i--;
}else
{
if(!inEle.children.get(i).isRedefine)
inEle.size=inEle.size+inEle.children.get(i).size;
}
}
inEle.size=inEle.size*inEle.occurs;
}
什麼是應該代表元素的'size'?它下面的元素數量? – corsiKa