だから、私はこのツリーを構築しています。*各ノードはそれ自身で1 .. *ノードを持つことができるノードを持っています。リストのあるツリー上のBFS
ツリーの最初の3つのレベルはうまく構築できますが、私がすべてのレベルをコード化していないともっとうまく動作しません。このソリューションはもちろん、何らかの種類の再帰的メソッドとBFSを使用しています。
基本的に私のTreeBuilderクラスでは、tree.getNodesAtDepth(depth))
を呼び出し、その深さにあるすべてのノードのリストを取得できるようにしたいと考えています。問題は、私がgetNodesAtDepth(depth)
メソッドを実装する方法を理解できないことです。
私が見つけたすべての例は、バイナリツリーです。別の方法として、addChildメソッドに深さ引数を設定して、子を挿入する深さを指定できるようにする方法があります。
最後に、これは私が欲しいものです。 私はルートを持つツリーを持っています。ルートには4つの子ノードを持つリストがあります。私は4人の子供を手に入れたいです。各子は3つのノードを生成します。子供0は3人の子供を、子供1は3人の子供を、子供3は3人の子供を、子供4は3人の子供を有する。等々
おそらく、各ノードにレベル属性を付け、そのノードを検索して親を返すことが考えられます。それが親であれば、検索されたノードのすべてのノードのリストを持つ必要があります。
にトラバースノード(実際には ''深さ-1 '')、その深さのすべての子を集めます。あなたはすべての子供のために再発するべきです。反復処理中に一時変数を使用して深度を増やします。 –