示例#1
0
 /// <summary>
 /// Traverse the entire tree, preorder fashion
 /// </summary>
 /// <param name="node"></param>
 /// <param name="nodeAction"></param>
 public void Traverse(Node <int> node, Action <Node <int> > nodeAction)
 {
     nodeAction.Invoke(node);
     foreach (Node <int> kidNode in node.OrderByBSRule())
     {
         Traverse(kidNode, nodeAction);
     }
 }
示例#2
0
 /// <summary>
 /// Traverse the entire tree, postorder fashion
 /// </summary>
 /// <param name="node"></param>
 /// <param name="nodeAction"></param>
 public void TraversePostorder(Node <int> node, Action <Node <int> > nodeAction)
 {
     foreach (Node <int> kidNode in node.OrderByBSRule())
     {
         nodeAction.Invoke(kidNode);
         TraverseInOrder(kidNode, nodeAction);
     }
     nodeAction.Invoke(node);
 }