Friday, December 9, 2011

Queue Using Stack

1      public class MyQueue<T> {
2             Stack<T> s1, s2;
3             public MyQueue() {
4                    s1 = new Stack<T>();
5                    s2 = new Stack<T>();
6             }
7         
8             public int size() {
9                    return s1.size() + s2.size();
10            }
11        
12            public void add(T value) {
13                   s1.push(value);
14            }
15        
16            public T peek() {
17                   if (!s2.empty()) return s2.peek();
18                   while (!s1.empty()) s2.push(s1.pop());
19                   return s2.peek();
20            }
21        
22            public T remove() {
23                   if (!s2.empty()) return s2.pop();
24                   while (!s1.empty()) s2.push(s1.pop());
25                   return s2.pop();
26            }
27     }

No comments:

Post a Comment