C++ 超过了使用两个堆栈实现队列的时间限制

C++ 超过了使用两个堆栈实现队列的时间限制,c++,class,stack,queue,C++,Class,Stack,Queue,上述问题需要使用两个堆栈实现队列。 所以我要做的是回答三种类型的问题 排队 出列 打印头 我的代码如下: /* #包括 #包括 使用名称空间std; 类QueueTwoStack{ 堆栈s1; 堆栈s2; 公众: 无效排队(int x); void dequeue(); int Front(); }; void QueueTwoStack::enqueue(int x){//enqueue 而(!s1.empty()){ s2.推(s1.顶()); s1.pop(); } s1.推(x); 而(

上述问题需要使用两个堆栈实现队列。 所以我要做的是回答三种类型的问题

  • 排队
  • 出列
  • 打印头
  • 我的代码如下: /*

    #包括
    #包括
    使用名称空间std;
    类QueueTwoStack{
    堆栈s1;
    堆栈s2;
    公众:
    无效排队(int x);
    void dequeue();
    int Front();
    };
    void QueueTwoStack::enqueue(int x){//enqueue
    而(!s1.empty()){
    s2.推(s1.顶());
    s1.pop();
    }
    s1.推(x);
    而(!s2.empty()){
    s1.推(s2.顶());
    s2.pop();
    }
    }
    void QueueTwoStack::dequeue(){//dequeue
    如果(!s1.empty())
    s1.pop();
    }
    int QueueTwoStack::Front(){//返回前端
    返回s1.top();
    }
    int main(){
    队列堆栈队列;
    int q,ch,x;
    cin>>q;
    而(q--){
    cin>>ch;
    如果(ch==2)
    Queue.dequeue();
    否则如果(ch==3)
    
    cout您正在堆栈
    s1
    中维护一个完全排序的队列,通过将所有
    s1
    推入
    s2
    ,添加下一个元素,然后将所有
    s2
    推回
    s1
    来排队元素。这不是很理想

    相反,让我们调用堆栈
    in
    out
    。开始时,这两个堆栈都是空的:

    in:  <top>
    out: <top>
    
    出列元素只需将它们从
    中拉出
    ——注意,如果
    中的
    为空,我们首先将
    中的所有
    转移到

    Dequeue:
    in:  1 2 3 <top>
    out: <top>            <- empty! Transfer
    
    in:  <top>
    out: 3 2 1 <top>
    
    Out no longer empty, pop 1:
    
    in:  <top>
    out: 3 2 <top>
    
    出列:
    在:1 2 3
    
    out:对于每个新元素,清空堆栈两次。将所有堆栈从s1推到s2,然后返回到s1。可以使用一个堆栈推送新的堆栈(s1),使用一个堆栈弹出(s2)。如果s2为空,则将s1的所有元素都推入s2。请提供一个示例,说明您的代码应该做什么?我无法读取您的黑客等级链接1)为自己找一个编译器。2)将失败的测试用例复制到文件中。3)重写代码,以便从该文件中读取。4)调试程序。
    Add 1:
    in:  1 <top>
    out: <top>
    
    Add 2:
    in:  1 2 <top>
    out: <top>
    
    Add 3:
    in:  1 2 3 <top>
    out: <top>
    
    Dequeue:
    in:  1 2 3 <top>
    out: <top>            <- empty! Transfer
    
    in:  <top>
    out: 3 2 1 <top>
    
    Out no longer empty, pop 1:
    
    in:  <top>
    out: 3 2 <top>