Javaでツリーデータ構造を実装するにはどうすればいいですか? 質問する

Javaでツリーデータ構造を実装するにはどうすればいいですか? 質問する

Java でツリーを表す標準 Java ライブラリ クラスはありますか?

具体的には、次のことを表現する必要があります。

  • 任意のノードのサブツリーには任意の数の子を持つことができる
  • 各ノード(ルート以降)とその子ノードには文字列値があります
  • 特定のノードのすべての子(何らかのリストまたは文字列の配列)とその文字列値(つまり、ノードを入力として受け取り、子ノードのすべての文字列値を出力として返すメソッド)を取得する必要があります。

これに使用できる構造はありますか、それとも独自に作成する必要がありますか (もしそうなら、実装の提案をいただければ幸いです)。

ベストアンサー1

ここ:

public class Tree<T> {
    private Node<T> root;

    public Tree(T rootData) {
        root = new Node<T>();
        root.data = rootData;
        root.children = new ArrayList<Node<T>>();
    }

    public static class Node<T> {
        private T data;
        private Node<T> parent;
        private List<Node<T>> children;
    }
}

これは、 または他の任意のオブジェクトに使用できる基本的なツリー構造ですString。必要なことを実行するシンプルなツリーを実装するのは非常に簡単です。

追加する必要があるのは、 への追加、 からの削除、 のトラバース、および コンストラクタのメソッドだけです。Nodeは の基本的な構成要素ですTree

おすすめ記事