0

2 つ以上の子ノードを持つツリーを作成するプロジェクトに取り組んでいます。バイナリ ツリーを作成するときは、左側のノードと右側のノードを作成して子として機能させることができますが、オンラインでツリーの作成に関するヘルプを探したところ、見つかったすべてのソリューションがバイナリの作成について話していることがわかりました。木。ツリーの作成の一部は、子ノードの配列または配列リストを作成する必要があることを意味することを理解していますが、その配列にデータを入れる方法や配列を「接続」する方法がわかりません親ノードへの子ノードの?

これが私が現時点で持っているコードです。それほど多くはないことはわかっていますが、このプロジェクトを開始したばかりで苦労しています。

class Node
{
    public int data; //data for storage
    public Node[] children;//array will keep children
    public Node parent;//parent to start the tree

    public Node(, int data)//constructor will store data and children(I think?)
    {
    }
}

public class Tree //main class will implement everything in Node
{
}

子ノードを親/ルート ノードに接続するこのプロセスは、どこからどのように開始すればよいですか?

4

1 に答える 1

2

配列の再作成に問題がないように子をリストに格納しますが、配列も使用できます。コンストラクターで直接、または最初の子を追加するときに、配列を初期化することもできます。

public class Main {

    public static void main(String[] args) {
        Node node = new Node(1)
            .addChild(new Node(2)
                    .addChild(new Node(4))
                    .addChild(new Node(5)))
            .addChild(new Node(3));
    }
}

class Node {
    public int data; //data for storage
    public List<Node> children;//array will keep children
    public Node parent;//parent to start the tree

    public Node(int data) {
        children = new ArrayList<>();
        this.data = data;
    }

    public Node addChild(Node node) {
        children.add(node);
        node.parent = this;
        return this;
    }
}
于 2020-07-24T18:15:32.387 に答える