以下のグラフでは、子パーツが再帰的にトラバースされます。各子は、直接の親を報告する必要があります。問題は、child[3] が直接の親 (つまり、child[2] と child[4]) の両方を同じ行で同時に報告しなければならないことです。
traverse(Node node)
{
if(node == null)
return;
for(Node child : node.getChilds()) {
traverse(child);
}
}
Parent
|---child[1]
| child[2]
| child[3]
|---child[4]
child[3]
現在、一度に 1 つのノードでグラフをトラバースしており、生成される出力は -
Node Immediate Parent
--------------------------
child[2] child[1]
child[3] child[2]
child[3] child[4]
期待される出力は -
Node Immediate Parent
--------------------------
child[2] child[1]
child[3] child[2], child[4]
ノードを検索し、グラフの期待される出力を生成する最良の方法は何でしょうか? どんな助けでも大歓迎です。