「Javaデータ構造」ツリー構造

ツリーは、階層的な入れ子構造です。外側及び内側層の木構造は同様の構造を持っているので、構造が再帰マルチ図ことができます。様々な古典的なデータ構造は、典型的な木構造のツリー図である:単にツリーのルート、左サブツリー、右の部分木のように表すことができます。左部分木と右のサブツリーには、独自のサブツリーを持っています。

回路図:

コードのすべて:

インポートはjava.util.ArrayListの;
 インポートはjava.util.List; 

パブリック クラスのTreeNode {
     プライベート int型年齢;     // ノード属性、年齢
    プライベート文字列名;    // ノードの属性の名前

    のTreeNode proTreeNode;     // 上位ノード 
    リスト<のTreeNode>リスト= 新しい新規のArrayList <ツリーノード>(); // 子ノードの

    パブリック INT getAge(){
         戻り年齢; 
    } 

    公共 ボイド setAge(int型年齢){
         この .age = 年齢; 
    }

    パブリック文字列のgetName(){
         戻り名。
    } 

    公共 ボイドのsetName(文字列名){
         この .nameの= 名前。
    } 

    公共のTreeNode getProTreeNode(){
         戻りproTreeNodeと、
    } 

    公共 ボイドsetProTreeNode(ツリーノードproTreeNode){
         この .proTreeNode = proTreeNode。
    } 

    公共 ボイドaddTreeNode(ツリーノードツリーノード){ 
        list.add(TREENODE)。
        treeNode.proTreeNode = この; 
    } 

    パブリックツリーノードgetTreeNode(整数I){
         戻りlist.get(I)。
    } 

    公共 ボイドremoveTreeNode(ツリーノードツリーノード){ 
        list.remove(TREENODE)。
        treeNode.proTreeNode = nullを
    } 

    パブリック文字列のtoString(){
         リターン "姓名:" +名+ ";年龄:" "" +年齢+ 
    } 
}
/ ** 
 *ツリーを作成します。
 * 
 *レイ
 * | | 
 * Meimeiリリー
 * | 
 *ギャング
 * / 
パブリック クラスツリー構造{
     公共の 静的な 無効メイン(文字列[] args)を{ 
        のTreeNode treeNode0 = 新新のTreeNode(); 
        treeNode0。 setAge( 11 ); 
        treeNode0.setName( "レイ" ); 

        ツリーノードtreeNode1 = 新しい新しいツリーノード(); 
        treeNode1.setAge( 13である); 
        treeNode1.setName("漢Meimei" ); 

        ツリーノードtreeNode2 = 新しい新しいツリーノード(); 
        treeNode2.setAge( 15 ); 
        treeNode2.setName( "リリー" ); 

        ツリーノードtreeNode3 = 新しい新しいツリーノード(); 
        treeNode3.setAge( 15 ); 
        treeNode3.setName(「ギャング" ); 

        treeNode0.addTreeNode(treeNode1); // 子ノードに関連付けられている親ノード 
        treeNode0.addTreeNode(treeNode2); // 子ノードに関連付けられている親ノード

        treeNode2.addTreeNode(treeNode3); // リリー・リギャングにリンクされている次のノード

        のSystem.out。 println(treeNode1);    //印刷ノード自体 
        のSystem.out.println(treeNode2.getTreeNode(0));   // プリントツリーノード 
        のSystem.out.println(treeNode1.getProTreeNode());   // プリントインタフェース親
    } 
}

結果:

 

おすすめ

転載: www.cnblogs.com/jssj/p/11617610.html