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

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>>();
    }
    
    public static class Node<t> {
        private T data;
        private Node<t> parent;
        private List<node>> children;
    }
}</node></t></t></node></t></t></t>

この構造は、ツリーとそのルート ノードを定義します。各ノードには、値 (データ フィールド)、親ノード (非ルート ノードの場合)、および子ノードのリストがあります。単純な 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;
}</string></string></string></string>

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

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい