ツリーは、階層的な入れ子構造です。外側及び内側層の木構造は同様の構造を持っているので、構造が再帰マルチ図ことができます。様々な古典的なデータ構造は、典型的な木構造のツリー図である:単にツリーのルート、左サブツリー、右の部分木のように表すことができます。左部分木と右のサブツリーには、独自のサブツリーを持っています。
回路図:
コードのすべて:
インポートは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()); // プリントインタフェース親 } }
結果: