Reversing a Queue

Write a program to reversing a queue element

Solution:

using System;
using System.Collections.Generic;

namespace QueueOperation
{
    class Program
    {
        static void Main()
        {
            var queue = new LinkQueue();

            queue.Queue.AddLast(1);
            queue.Queue.AddLast(2);
            queue.Queue.AddLast(3);
            queue.Queue.AddLast(4);
            queue.Queue.AddLast(5);

            queue.ReverseQueue();

            Console.WriteLine("Reversed Queue");
            while (queue.Queue.Count > 0)
            {
                Console.WriteLine(queue.Queue.First.Value);
                queue.Queue.RemoveFirst();
            }

            Console.ReadLine();
        }
    }

    class LinkQueue
    {
        public LinkedList<int> Queue;

        public LinkQueue()
        {
            Queue = new LinkedList<int>();
        }

        public void ReverseQueue()
        {
            Stack<int> stack = new Stack<int>();
            while (Queue.Count > 0)
            {
                stack.Push(Queue.First.Value);
                Queue.RemoveFirst();
            }
            while (stack.Count > 0)
            {
                Queue.AddLast(stack.Peek());
                stack.Pop();
            }
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *