首页 > 代码库 > CC150 3.5
CC150 3.5
3.5 Implement a MyQueue class which implements a queue using two stacks.
interface Queue<T> { enqueue(T t); T dequeue(); } class MyQueue<T> implements Queue<T> { MyQueue() { // Init stacks s1 and s2; ... } // O(n) enqueue(T t) { while (!s2.isEmpty()) { s1.push(s2.pop()); } s1.push(t); } // O(n) T dequeue() { while (!s1.isEmpty()) { s2.push(s1.pop()); } return s2.pop(); } private Stack<T> s1; // handle enqueue() private Stack<T> s2; // handle dequeue() } class ABetterQueue<T> implements Queue<T> { ABetterQueue(){...} // O(1) enqueue(T t) { s1.push(t); } // O(n) T dequeue() { if (!s2.isEmpty()) { while(!s1.isEmpty()) s2.push(s1.pop()); } return s2.pop(); } private Stack<T> s1; private Stack<T> s2; }
CC150 3.5
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。