所以我正在構建這個樹,它有1個*節點,其中每個節點都有一個列表,它們本身可以有1 *個節點。在列表樹上使用BFS
我可以構建的樹的前三個級別很好,但如果我不編碼所有級別都很簡單,那麼它不會工作更多。解決方案當然是使用某種遞歸方法和BFS。
基本上,在我的TreeBuilder類中,我希望能夠調用tree.getNodesAtDepth(depth))
並獲取所有處於該深度的節點的列表。問題是我不明白我如何實施getNodesAtDepth(depth)
方法。
我發現的所有例子都是二叉樹。另一種方法是讓addChild方法獲取深度參數,以便我可以指定插入子級的深度。
最後,這就是我想要的: 我有一棵有根的樹。根有一個有4個子節點的列表。我想得到4個孩子。爲每個孩子生成三個節點。所以對於孩子0有3個孩子,孩子1有3個孩子,孩子3有3個孩子,孩子4有3個孩子。等等
也許一個可能的靈魂是在每個節點上有一個級別屬性並搜索該節點,然後返回它的父級。因爲它的父節點應該有一個搜索節點上所有節點的列表。
遞歸遍歷樹的遍歷,直到找到預期深度(實際上是「預計深度-1'),然後收集所有深度的孩子。你應該爲所有的孩子遞歸。迭代時使用臨時變量來增加深度。 –