예제 #1
0
 /// <summary>
 ///   Traverse a subtree using a <see cref="DecisionTreeTraversal">tree
 ///   traversal method</see>. Can be iterated with a foreach loop.
 /// </summary>
 ///
 /// <param name="method">The tree traversal method. Common methods are
 /// available in the <see cref="TreeTraversal"/>static class.</param>
 /// <param name="subtree">The root of the subtree to be traversed.</param>
 ///
 /// <returns>An <see cref="IEnumerable{T}"/> object which can be used to
 /// traverse the tree using the chosen traversal method.</returns>
 ///
 public IEnumerable <DecisionNode> Traverse(DecisionTreeTraversalMethod method, DecisionNode subtree)
 {
     if (subtree.Owner != this)
     {
         throw new ArgumentException(
                   "The node does not belong to this tree.", "subtree");
     }
     return(new TreeTraversal(subtree, method));
 }
예제 #2
0
 public TreeTraversal(DecisionNode tree, DecisionTreeTraversalMethod method)
 {
     this.tree   = tree;
     this.method = method;
 }
예제 #3
0
 /// <summary>
 ///   Traverse the tree using a <see cref="DecisionTreeTraversal">tree
 ///   traversal method</see>. Can be iterated with a foreach loop.
 /// </summary>
 ///
 /// <param name="method">The tree traversal method. Common methods are
 /// available in the <see cref="TreeTraversal"/>static class.</param>
 ///
 /// <returns>An <see cref="IEnumerable{T}"/> object which can be used to
 /// traverse the tree using the chosen traversal method.</returns>
 ///
 public IEnumerable <DecisionNode> Traverse(DecisionTreeTraversalMethod method)
 {
     return(new TreeTraversal(Root, method));
 }