Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public IEnumerator<T> GetEnumeratorYieldThree()
- {
- yield return Value;
- if (Left != null)
- foreach (var elem in Left)
- yield return elem;
- if (this.Right != null)
- foreach (var elem in this.Right)
- yield return elem;
- }
- public IEnumerator<T> GetEnumeratorYieldFour()
- {
- var q = new Queue<BinaryTreeNode<T>>();
- q.Enqueue(this);
- while (q.Count > 0)
- {
- BinaryTreeNode<T> current = q.Dequeue();
- yield return current.Value;
- if (current.Left != null) q.Enqueue(current.Left);
- if (current.Right != null) q.Enqueue(current.Right);
- }
- }
- public IEnumerator<T> GetEnumerator()
- {
- if (enumtype <= 2)
- return new BTEnum<T>(this);
- else if (enumtype == 3)
- return GetEnumeratorYieldThree();
- else if (enumtype == 4)
- return GetEnumeratorYieldFour();
- else return new BTEnum<T>(this);
- }
- System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement