递归函数调用在达到限制后突然发生了故障。用于使用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