ホームページ >Java >&#&チュートリアル >任意の子と文字列値を持つノードを処理するために Java でツリー データ構造を実装するにはどうすればよいですか?

任意の子と文字列値を持つノードを処理するために Java でツリー データ構造を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 07:45:10674ブラウズ

How Can I Implement a Tree Data Structure in Java to Handle Nodes with Arbitrary Children and String Values?

Java でのツリー データ構造の実装

階層データを扱う場合、ツリー構造は重要な役割を果たします。この質問では、標準 Java ライブラリ クラスを使用して特定の要件を満たすツリーを表す可能性を検討します。

  • ノードは任意の数の子を持つことができます。
  • ノード (ルートを除く) ) とその子は文字列値を持っています。
  • 指定されたすべての子ノードとその文字列値を取得する必要があります。 node.

Java ライブラリを調査すると、これらの仕様を正確に満たすクラスが提供されていないことがわかりました。したがって、カスタム ツリー構造の作成が必要になります。

要件に対処する簡単な実装を次に示します。

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;
    }
}

この構造は、ツリーとそのルート ノードを定義します。各ノードには、値 (データ フィールド)、親ノード (非ルート ノードの場合)、および子ノードのリストがあります。単純な getter メソッドを追加して、子とその文字列値を取得できます。

public List<String> getChildrenValues(Node<String> node) {
    List<String> childrenValues = new ArrayList<>();
    for (Node<String> child : node.children) {
        childrenValues.add(child.data);
    }
    return childrenValues;
}

この実装により、指定された要件を満たすツリー構造を作成および操作できます。ツリーを追加、削除、および横断するためのメソッドは、必要に応じて追加できます。

以上が任意の子と文字列値を持つノードを処理するために Java でツリー データ構造を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。