ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

225. 用队列实现栈

2022-03-25 11:31:51  阅读:150  来源: 互联网

标签:队列 pop 实现 int que push front 225 size


✔做题思路 or 感想 :

  • 用队列实现栈,仅仅用一个队列就可以了

    • push:直接push进队列就好

    • pop:把队首加到队尾,直到最开始的队尾变成了队首,这样就可以取最开始的队尾的值了。

    • peek:这个和pop的操作差不多,但是最后的操作有别。在最后取完队首(即是最开始的栈顶)后,要再把队首加到队尾去,还原成一开始的队列!不然最开始的队首就变成了栈顶了!

      class MyStack {
      public:
          MyStack() {
      
          }
          queue<int>que;
          void push(int x) {
              que.push(x);
          }
          
          int pop() {
              int size = que.size() - 1;
              while (size--) {
                  int front = que.front();
                  que.pop();
                  que.push(front);
              }
              int result = que.front();
              que.pop();
              return result;
          }
          
          int top() {
              int size = que.size() - 1;
              while (size--) {
                  int front = que.front();
                  que.pop();
                  que.push(front);
              }
              int result = que.front();	//这里记得把队列还原回一开始的队列!!!
              que.push(result);
              que.pop();
              return result;
          }
          
          bool empty() {
              return que.empty();
          }
      };
      
      /**
       * Your MyStack object will be instantiated and called as such:
       * MyStack* obj = new MyStack();
       * obj->push(x);
       * int param_2 = obj->pop();
       * int param_3 = obj->top();
       * bool param_4 = obj->empty();
       */
      

标签:队列,pop,实现,int,que,push,front,225,size
来源: https://www.cnblogs.com/doomaa/p/16053840.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有