40. 用栈实现队列

40. 用栈实现队列

正如标题所述,你需要使用两个栈来实现队列的一些操作。

队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。

pop和top方法都应该返回第一个元素的值。

您在真实的面试中是否遇到过这个题?

Yes

样例

比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2

挑战

标签

相关题目
思路:算法实现很简单,但此处需注意的是stack.pop()并不会直接返回一个特定的值而是直接删除出去

class MyQueue {
public:
    stack<int> s1;
    stack<int> s2;
    MyQueue() {
        // do intialization if necessary
    }

    /*
     * @param element: An integer
     * @return: nothing
     */
    void push(int e) {
        // write your code here
        s1.push(e);
        
        
    }

    /*
     * @return: An integer
     */
    int pop() {
        // write your code here
        int data;
        if(s2.empty()){
            while(!s1.empty()){
                data=s1.top();
                
                s2.push(data);
                s1.pop();
            }
        }
        data=s2.top();
        s2.pop();
        return data;
        
    }

    /*
     * @return: An integer
     */
    int top() {
        int data;
        if(s2.empty()){
            while(!s1.empty()){
                data=s1.top();
                
                s2.push(data);
                s1.pop();
            }
        }
        return s2.top();
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 1,523评论 0 5
  • 一、栈 1.1 栈的实现 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。java没有栈这样的数据结...
    yjaal阅读 1,471评论 0 1
  • 1.栈 1.1.栈的定义 栈(stack)是限定仅在表尾(栈顶 top)进行插入和删除操作的后进先出的线性表。 p...
    JonyFang阅读 1,404评论 0 21
  • 在我结婚那会,老公的嫂子也就成了我的嫂子,也是我的妯娌。 那时她已经四十多岁了,我很意外老公会有个如此“老”的嫂嫂...
    毓舒阅读 490评论 0 3
  • (一) 我是一条活在海里的鱼 存在的意义是在海里遨游 他说,你好自由 你拥有辽阔无边的海洋 他说,你好幸福 生来,...
    梓杨说阅读 304评论 0 0