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
。