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