C Program To Implement Stack Using Two Queues
Strategy as follows.- Implement Stack.Pop and Stack.Push(object item)- Push simply Enqueues a Queue called filledQ.- Pop loops to Enqueue your 2nd Queue - emptyQ - with filledQ.Dequeue, for all but the last. While (filledQ.Count 1)- Dequeue that last item into a temp, swap the pointers so that emptyQ becomes filledQ, and return the item.That makes Push O(1) and Pop O(n). You can have it reversed such that Push is O(n) and Pop be O(1), but a Stack will always have = pushes than pops, so I chose to favor pushes. If you intend on providing a Peek method for your stack, then you Must favor the Pop.-SomeGuyJuly 01, 2010.
I think there is another solution when we assume every element in the queue is different. 1) We assign the value of the front element of queue A to x, and then pop the first element and push it back to A. 2) pop every element to queue B, at the same time check whether the current front element of queue A equals to x, if yes, pop element from B; otherwise, pop element from B and push to A, and pop another element from A-B.
Write A Program In C Language To Implement A Stack Using Two Queues
3)if there is only one element in A, pop it out as the last element of the stack.-AnonymousJuly 14, 2010.
If you want to practice data structure and algorithm programs, you can go through.In this program, we will see how to implement stack using Linked List in java.Stack is abstract data type which demonstrates Last in first out (LIFO) behavior. We will implement same behavior using two queue.There are two most important operations of Stack:Lets say you have two queues: queue1, queue2. Push:.
If queue1 is empty, add elements to queue1. If queue1 is not empty, add all elements of queue1 to queue2, add current element to queue1 and copy all elements of queue2 to queue1. Pop: Simply remove element from queue1.Java Program.