一级做a爱网站免费,php网站开发都需要什么软件,建筑网建设通网站作用是什么意思,电子商务网站建设类型一、用栈实现队列
1、题目 仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作#xff08;push、pop、peek、empty#xff09;#xff1a;
实现 MyQueue 类#xff1a;void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
…一、用栈实现队列
1、题目 仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty
实现 MyQueue 类void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
int peek() 返回队列开头的元素
boolean empty() 如果队列为空返回 true 否则返回 false
2、解答
class MyQueue {
private://双栈stackint inStack, outStack;void in2out() {while (!inStack.empty()) {outStack.push(inStack.top());inStack.pop();}}
public:MyQueue() {}void push(int x) {inStack.push(x);}int pop() {if (outStack.empty()) {in2out();}int x outStack.top();outStack.pop();return x;}int peek() {if (outStack.empty()) {in2out();}return outStack.top();}bool empty() {return outStack.empty() inStack.empty();}
};二、用队列实现栈
1、题目 仅使用两个队列实现一个后入先出LIFO的栈并支持普通栈的全部四种操作push、top、pop 和 empty。
实现 MyStack 类void push(int x) 将元素 x 压入栈顶。
int pop() 移除并返回栈顶元素。
int top() 返回栈顶元素。
boolean empty() 如果栈是空的返回 true 否则返回 false 。
2、解答
class MyStack {
private:queueint queue1;queueint queue2;public:MyStack() {}//在push时就放好了顺序后来的数据放在队列1的前端pop时候直接取front即可void push(int x) {queue2.push(x);while(!queue1.empty()) {queue2.push(queue1.front());queue1.pop();}swap(queue1, queue2);}int pop() {int x queue1.front();queue1.pop();return x;}int top() {int x queue1.front();return x;}bool empty() {return queue1.empty() queue2.empty();}
};