static void QueueTest() { int N = 8; MyQueue <int> queue = new MyQueue <int>(); Console.WriteLine("\n Queue is full: " + queue.isFull()); Console.WriteLine(" Queue is empty: " + queue.isEmpty()); for (int i = 0; i < N; i++) { Console.WriteLine("Try to Enqueue num: " + i); queue.Enqueue(i); } Console.WriteLine("\n Queue is full: " + queue.isFull()); Console.WriteLine(" Queue is empty: " + queue.isEmpty()); for (int i = 0; i < N; i++) { Console.WriteLine("Try to Dequeue, number is: " + queue.Dequeue()); } Console.WriteLine("\n Queue is full: " + queue.isFull()); Console.WriteLine(" Queue is empty: " + queue.isEmpty()); Console.Read(); }
public IEnumerable <T> BreadthFirst() { if (this.root == null) { yield break; } MyQueue <TreeNode <T> > queue = new MyQueue <TreeNode <T> >(); TreeNode <T> current = this.root; queue.Enqueue(current); do { current = queue.Dequeue(); yield return(current.Value); if (current.Left != null) { queue.Enqueue(current.Left); } if (current.Right != null) { queue.Enqueue(current.Right); } }while (queue.Count > 0); }