您的位置:首页 > 其它

用两个栈实现队列的操作

2016-04-12 15:02 141 查看
#include <stack>
#include <iostream>
using namespace std;

class Queue {
public:
void enQueue(int e) {
s1.push(e);
}
int deQueue() {
if (s2.empty()) {
while (!s1.empty()) {
int elem = s1.top();
s1.pop();
s2.push(elem);
}
int res = s2.top();
s2.pop();
return res;
}
else {
int res = s2.top();
s2.pop();
return res;
}
}
private:
std::stack<int> s1;
std::stack<int> s2;
};

int main() {
Queue q;
q.enQueue(4);
q.enQueue(7);
q.enQueue(3);
q.enQueue(9);
q.enQueue(1);
cout << q.deQueue() << endl;
cout << q.deQueue() << endl;
cout << q.deQueue() << endl;
cout << q.deQueue() << endl;
cout << q.deQueue() << endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  STL 队列