Java 以邻接列表作为输入初始化树

Java 以邻接列表作为输入初始化树,java,tree,Java,Tree,我试图在javax.swing中创建一个简单的树节点类,而不是使用javax.swing中提供的TreeNode接口,我可以用它来解决一些简单的问题,比如查找高度和检查它是否平衡 class node{ int data; node left;//left child node node right;//right child node int height; node(int data){ this.data=data;

我试图在javax.swing中创建一个简单的树节点类,而不是使用javax.swing中提供的TreeNode接口,我可以用它来解决一些简单的问题,比如查找高度和检查它是否平衡

class node{
    int data;
    node left;//left child node
    node right;//right child node
    int height;
    node(int data){
        this.data=data;
        left=null;
        right=null;
        height=0;
    } 
}
但是,如果输入被视为一个邻接列表,我如何初始化它,如下所示:

1
2,3
1,4,5
1
2
2,6,7
5
5
其中第一行是根节点,下面几行显示了与相应行号表示的节点相邻的节点。它将如下所示:


另外,请建议我可能在node类中加入的任何更改,以便它可以用于基本问题,如查找高度、检查树是否平衡、宽度优先搜索等。

我不理解您的树示例。你能把它描述成这个节点吗,child1,chidl2,…,childk?首先,你得问问自己这是一个树还是一个更通用的图。您确定所有邻接列表都将表示一棵树吗?此外,在节点的邻接列表中,例如5-2、6、7-如何知道哪些是父节点,哪些是子节点?是的,我确信所有输入都将表示一个二叉树。如果我从根节点开始,我会知道哪个是父节点,哪个是子节点,这在其他人说过的输入的第一行中给出,你能用邻接列表给树一个更明确的例子吗?对于一棵树,a是根,b和c是唯一的两个子树,邻接列表是什么样子的?我已经为给定的输入案例添加了树形图