剑指offer---用两个栈实现队列

Posted Tech Memo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer---用两个栈实现队列相关的知识,希望对你有一定的参考价值。

题目:用两个栈实现队列

要求:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

 1 class Solution
 2 {
 3 public:
 4     void push(int node) {
 5         
 6     }
 7 
 8     int pop() {
 9         
10     }
11 
12 private:
13     stack<int> stack1;
14     stack<int> stack2;
15 };

解题代码:

 1 class Solution
 2 {
 3 public:
 4     void push(int node) {
 5         stack1.push(node);
 6     }
 7 
 8     int pop() {
 9         if(stack2.empty()){
10             while(!stack1.empty()){
11                 stack2.push(stack1.top());
12                 stack1.pop();
13             }
14         }
15         int res = stack2.top();
16         stack2.pop();
17         return res;
18     }
19 
20 private:
21     stack<int> stack1;
22     stack<int> stack2;
23 };

 

以上是关于剑指offer---用两个栈实现队列的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 09. 用两个栈实现队列

剑指offer-用两个栈实现队列

剑指offer---用两个栈实现队列

《剑指Offer——面试题9:用两个栈实现队列》代码

《剑指offer》— JavaScript用两个栈实现队列

剑指offer用两个栈实现队列

(c)2006-2024 SYSTEM All Rights Reserved IT常识