232. 用栈实现队列

使用两个栈,一个作为输入栈,一个作为输出栈

  1. class MyQueue {
  2. public:
  3. stack<int> in;
  4. stack<int> out;
  5. MyQueue() {
  6. }
  7. void push(int x) {
  8. in.push(x);
  9. }
  10. int pop() {
  11. if(out.empty())
  12. {
  13. while(!in.empty())
  14. {
  15. out.push(in.top());
  16. in.pop();
  17. }
  18. }
  19. int res = out.top();
  20. out.pop();
  21. return res;
  22. }
  23. int peek() {
  24. int res = this->pop();
  25. out.push(res);
  26. return res;
  27. }
  28. bool empty() {
  29. return in.empty()&&out.empty();
  30. }
  31. };