private walkNode ( Node n, Set |
||
n | Node | |
seenAlready | Set |
|
incomingEdges | Map |
|
rootNodes | Set |
|
리턴 | void |
private void walkNode(Node n, Set<Node> seenAlready,
Map<Node, List<Node>> incomingEdges, Set<Node> rootNodes)
{
if (!seenAlready.Contains(n))
{
seenAlready.add(n);
// Check if has no incoming edges
if (n.isRoot())
{
rootNodes.add(n);
}
incomingEdges.put(n, new List<Node>(n.getParents()));
foreach (Node c in n.getChildren())
{
walkNode(c, seenAlready, incomingEdges, rootNodes);
}
}
}
}