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();
}
}
}
}