Exemple #1
0
 /// <inheritdoc />
 public sealed override IEnumerableEnumerator <TValue> Enumerate(TNode root, BreadthDepthTraversal method)
 {
     return(method switch
     {
         BreadthDepthTraversal.BreadthFirst => new BreadthFirstEnumerator(this, root),
         BreadthDepthTraversal.DepthFirst => new DepthFirstEnumerator(this, root),
         _ => throw new ArgumentOutOfRangeException(nameof(method), method, null)
     });
Exemple #2
0
 public sealed override IEnumerableEnumerator <T> Enumerate(T from, BreadthDepthTraversal method)
 {
     if (!ContainsKey(from))
     {
         throw new KeyNotFoundException();
     }
     return(method switch
     {
         BreadthDepthTraversal.BreadthFirst => new BreadthFirstEnumerator(this, from),
         BreadthDepthTraversal.DepthFirst => new DepthFirstEnumerator(this, from),
         _ => throw new ArgumentOutOfRangeException(nameof(method), method, null)
     });
Exemple #3
0
 public abstract IEnumerableEnumerator <T> Enumerate([NotNull] T from, BreadthDepthTraversal method);
Exemple #4
0
 public abstract IEnumerableEnumerator <TValue> Enumerate(BreadthDepthTraversal method);
Exemple #5
0
 /// <summary>
 /// Iterate over nodes with a callback function
 /// </summary>
 /// <param name="method">The technique to use when traversing</param>
 /// <param name="visitCallback">callback function to handle the node that can cancel the loop</param>
 public abstract void Iterate(BreadthDepthTraversal method, [NotNull] Func <TNode, bool> visitCallback);
Exemple #6
0
 /// <summary>
 /// Iterate over nodes with a callback action
 /// </summary>
 /// <param name="method">The technique to use when traversing</param>
 /// <param name="visitCallback">callback action to handle the node</param>
 public abstract void Iterate(BreadthDepthTraversal method, [NotNull] Action <TNode> visitCallback);
Exemple #7
0
 /// <inheritdoc />
 public sealed override void Iterate(BreadthDepthTraversal method, Func <TNode, bool> visitCallback)
 {
     Iterate(Head, method, visitCallback);
 }
Exemple #8
0
 /// <inheritdoc />
 public sealed override void Iterate(BreadthDepthTraversal method, Action <TNode> visitCallback)
 {
     Iterate(Head, method, visitCallback);
 }
Exemple #9
0
 /// <inheritdoc />
 public sealed override IEnumerableEnumerator <TValue> Enumerate(BreadthDepthTraversal method)
 {
     return(Enumerate(Head, method));
 }