剑指 Offer 09. 用两个栈实现队列 关于stack的top与pop

【21年 剑指offer】剑指 Offer 09. 用两个栈实现队列

剑指offer09 LeetCode连接

思路较为简单,不详细赘述

关于stack的top与pop

stack s1
// 删除栈顶元素 无返回值
s1.pop();
// 返回栈顶元素
int t1 = s1.top();
class CQueue {
     
    stack<int>s1,s2;
    int size;
public:
    CQueue() {
     
        while( !s1.empty() )
            s1.pop();
        while( !s2.empty() )
            s2.pop();
        size = 0;

    }
    
    void appendTail(int value) {
     
        s1.push( value );
        size++;
    }
    
    int deleteHead() {
     
        if( size == 0)
            return -1;
        if( s2.empty() ){
     
            while( !s1.empty() ){
     
                s2.push( s1.top()  );
                s1.pop();
            }
        }
        int temp = s2.top();
        s2.pop();
        size--;
        return temp;
    }
};

你可能感兴趣的:(c++,stack)