我试图制作一个最终可以用于minimax搜索的节点类,但是我在遍历树中的所有节点时遇到了麻烦(在这种情况下,是为了实现简单的字符串功能)。
这是递归到字符串方法的定义。
public String toString(){
if(!this.isLeaf()){
String text = "";
Iterator<Node<T>> iter = children.iterator();
while(iter.hasNext()){
Node child = iter.next();
text = "/" + child.toString();
}
return text;
}else{
return cargo.toString() ;
}
}
阅读其他答案后,我尝试使用Iterator接口,如上面的代码所示,但仍然无法正常工作。(我也乐于接受非递归方法)
我假设您打算将汤姆答案中的子值连接在一起,并用“ /”分隔。
如果您打算建立一个字符串,使用StringBuffer会更有效,因为否则每次循环时,都必须分配一个新的String来获取新值,而StringBuffer会在缓冲区中建立。
StringBuffer text = new StringBuffer();
for (Node<T> child : children) {
text.append('/');
text.append(child.toString());
}
return text.toString;
我使用了for-each样式循环,但是您使用的“ while”循环仍然可以正常使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句