4_4双栈队列

编写一个类,只能用两个栈结构实现队列,支持队列的基本操作(push,pop)。

给定一个操作序列ope及它的长度n,其中元素为正数代表push操作,为0代表pop操作,保证操作序列合法且一定含pop操作,请返回pop的结果序列。

测试样例:
输入:[1,2,3,0,4,0],6
返回:[1,2]

class TwoStack {
public:
    stack<int> push_stack, pop_stack;
    void pour_into(stack<int> &A, stack<int> &B)
    {
        while(!A.empty()){
            B.push(A.top());
            A.pop();
        }
    }
    vector<int> twoStack(vector<int> ope, int n) {
        vector<int> result;
        for(int i=0; i<n; i++){
            if(0 == ope[i]){
                pour_into(push_stack, pop_stack);
                result.push_back(pop_stack.top());
                pop_stack.pop();
            }else{
                pour_into(pop_stack, push_stack);
                push_stack.push(ope[i]);
            }
        }
        return result;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3.1❶若按教科书3.1.1节中图3.1(b)所示铁道进行车厢调度(注意:两侧铁道均为单向行驶道),则请回答: (...
    云时之间阅读 6,669评论 0 3
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,472评论 0 4
  • 栈 栈的英文单词是Stack,它代表一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入,...
    Jack921阅读 5,430评论 0 5
  • 一、栈 1.1 栈的实现 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。java没有栈这样的数据结...
    yjaal阅读 5,295评论 0 1
  • 时间零碎在迷惘而我依旧在仿徨 空虚似虚无既不安也无奈 如果这是病恐以绝症 失落恐惧仿似扭曲了我的生活 驱不走散不开...
    森尼_d074阅读 1,300评论 0 0