遍历递归定义的树中的所有节点

用户名

我试图制作一个最终可以用于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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章