Ejemplo n.º 1
0
 public void forAll(nodeCallback nodeCallback, nodeToLinkCallback linkCallback)
 {
     tempNodes = new List <Node>();
     forAllSub(nodeCallback, linkCallback, root);
     forIsoalted(nodeCallback, linkCallback);
     tempNodes.Clear();
 }
Ejemplo n.º 2
0
 private void forIsoalted(nodeCallback nodeCallback, nodeToLinkCallback linkCallback)
 {
     foreach (Node n in nodes)
     {
         if (!tempNodes.Contains(n))
         {
             forAllSub(nodeCallback, linkCallback, n);
         }
     }
 }
Ejemplo n.º 3
0
 private void forAllSub(nodeCallback nodeCallback, nodeToLinkCallback linkCallback, Node currNode)
 {
     currNode.isChecked = true;
     tempNodes.Add(currNode);
     nodeCallback(currNode);
     foreach (var n in currNode.links)
     {
         linkCallback(currNode, n.Value);
         if (!n.Value.isChecked)
         {
             forAllSub(nodeCallback, linkCallback, n.Value);
         }
     }
     currNode.isChecked = false;
 }