剑指offer09 用两个栈实现队列

分析:

栈是先进后出,队列是从右到左先进先出

class CQueue {
public:
    CQueue() {

    }

    void appendTail(int value) {
      mainStack.push(value);
    }

    int deleteHead() {
        int res = -1;
      if(mainStack.size()) {
          while(!mainStack.empty()){
          tempStack.push(mainStack.top());
          mainStack.pop();
      }
          res = tempStack.top();
          tempStack.pop();

          while(tempStack.size()) {
            mainStack.push(tempStack.top());
            tempStack.pop();

          }
      }
      return res;
    }

    private:
    stack<int>mainStack;
    stack<int>tempStack;
};

Guess you like

Origin blog.csdn.net/yonggandess/article/details/121388719