/// <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)); }
public TreeTraversal(DecisionNode tree, DecisionTreeTraversalMethod method) { this.tree = tree; this.method = method; }
/// <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)); }