Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }