AIMA.Probability.Bayes.Impl.BayesNet.walkNode C# (CSharp) Method

walkNode() private method

private walkNode ( Node n, Set seenAlready, Map incomingEdges, Set rootNodes ) : void
n Node
seenAlready Set
incomingEdges Map
rootNodes Set
return 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);
                }
            }
        }
    }