【面试题】用栈实现队列
2015-07-11 20:31
281 查看
题目描述
正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。
http://www.lintcode.com/zh-cn/problem/implement-queue-by-two-stacks/
代码实现
[code]class Queue { public: stack<int> stack1; stack<int> stack2; Queue() { // do intialization if necessary } void push(int element) { // write your code here stack1.push(element); } int pop() { // write your code here int data; if(stack2.empty()) { while(!stack1.empty()) { data = stack1.top(); stack1.pop(); stack2.push(data); } } data = stack2.top(); stack2.pop(); return data; } int top() { // write your code here int data; if(stack2.empty()) { while(!stack1.empty()) { data = stack1.top(); stack1.pop(); stack2.push(data); } } data = stack2.top(); return data; } };
相关文章推荐
- 面试常考算法题 局部最小 求二叉树结点 求两个数组中所有数的上中位数 两个数组的所有数中第K小的数
- 老伴说我每个标点符号后都打一个空格, 我才意识到真有这个问题,其实就是个职业病吧
- 黑马程序员--java基础学习笔记6
- 黑马程序员 String StringBuffer
- 黑马程序员
- [异能程序员]第四章 偶遇(第四更)
- [异能程序员]第三章 异能初现(第三更)
- [异能程序员]第四章 偶遇(第四更)
- [异能程序员]第三章 异能初现(第三更)
- 黑马程序员-类的封装,继承和多态
- 如何锻炼出最牛程序员的编码套路
- 程序员必知的8大排序(一)-------插入排序,希尔排序(java实现)
- 黑马程序员——OC基础---block,protocol
- HashMap的面试题
- 面试——腾讯
- 黑马程序员——OC基础---内存管理(autorelease,ARC)
- 黑马程序员 多线程 2
- 程序员一路上相伴的朋友
- Java面试题全集(下)
- Java面试题全集(中)