在java中从地面实现树类

时间:2015-12-09 18:11:40

标签: java tree nodes treenode

我从头开始实现一个树类,我有数据字段和构造函数,如下所示:     公共类TreeNode实现Node {     int数据;     TreeNode孩子;     TreeNode父级;     字符串名称;     布尔访问;

public TreeNode(int data){
    this.data = data;
    child = null;
    parent = null;
    name = null;
    visited = false;
}

我需要实现的方法之一是getChildren(Node n),它返回一个包含Node n的所有子节点的列表。 我不知道如何找到节点的所有子节点。 谢谢您的帮助!

public List<Node> getChildren() {
    List<Node> children = new ArrayList<>();
    while(!children.contains(this.child)){
    children.add(this.child);}
    return children;
}

1 个答案:

答案 0 :(得分:0)

您应该在类声明之外声明您的ArrayList,以便您可以在所有方法中使用它。然后,您需要某种方法将新的子节点添加到当前节点,addChild(Treenode child)负责处理。

public class TreeNode {

    private ArrayList<TreeNode> children; 

    public TreeNode(int data){
        children = new ArrayList<>();        
    }

    public void addChild(TreeNode child){
        children.add(child);
    }

    public ArrayList<TreeNode> getChildren(){        
        return children;
    } 
}