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

2016/05/24 C和C++基础

用两个栈实现队列

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

#include <iostream>
#include <stack>
using namespace std;

class Solution
{
public:
    void push(int node){
		stack1.push(node);
    }
    int pop(){
		while(!stack1.empty()){
			int n=stack1.top();
			stack2.push(n);
			stack1.pop();
		}
		int num=stack2.top();
		stack2.pop();
		while(!stack2.empty()){
			int n=stack2.top();
			stack1.push(n);
			stack2.pop();
		}
		return num;
    }

private:
    stack<int> stack1;
    stack<int> stack2;
};

int main(){
	Solution s;
	s.push(1);
	s.push(2);
	s.push(3);
	cout<<s.pop()<<endl;
	s.push(4);
	cout<<s.pop()<<endl;
	system("pause");
}

Search

    Post Directory