本文共 907 字,大约阅读时间需要 3 分钟。
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:
stack1的栈底作为队列的头,栈顶作为队列的尾,stack2来辅助pop。代码实现:
class Solution{public: void push(int node) { while (!stack2.empty()){ //如果stack2不为空 stack1.push(stack2.top());//那就就先要将stack2中的数据全都放到stack1中 stack2.pop(); } stack1.push(node);//入队列 } int pop() { while (!stack1.empty()){ //如果stack1不为空 stack2.push(stack1.top());//要将stack1中的数据放到stack2中,再取stack2的栈顶元素stack2.top() stack1.pop();//再pop } int result = stack2.top();//出队列 stack2.pop(); return result; }private: stack stack1; stack stack2;};
运行结果:运行时间: <1 ms 占用内存:8568K 状态:答案正确
转载地址:http://dimii.baihongyu.com/