已解决
五、 栈和队列
来自网友在路上 171871提问 提问时间:2023-11-05 00:12:48阅读次数: 71
最佳答案 问答题库718位专家为你答疑解惑
一、栈和队列的定义
栈是先进后出,队列是先进先出
栈的相关操作:
stack<Type> stack_name;
.push(element) 压入栈顶
.pop() 弹出栈顶
.top() 返回栈顶元素的引用
.empty() 栈为空返回true,否则返回false
队列的相关操作:
queue<T> queue_name;
.push(element) 插入队列末尾
.pop() 移除队列的第一个元素
.front() 返回队列的第一个元素的引用
.empty() 如果队列为空,则返回true,否则返回false
二、题目1 用两个栈实现队列
class MyQueue {
private:stack<int> 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();}int x = outStack.top();return x;}bool empty() {return outStack.empty()&&inStack.empty();}
};
三、题目2 用两个队列实现栈
class MyStack {
private:queue<int> queue1;queue<int> queue2;
public:MyStack() {}void push(int x) {queue1.push(x);while (!queue1.empty()){queue2.push(queue1.front());//获取队列的第一个元素queue1.pop();}swap(queue1, queue2);}int pop() {int r = queue1.front();queue1.pop();return r;}int top() {int r = queue1.front();return r;}bool empty() {return queue1.empty();}
};
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"五、 栈和队列":http://eshow365.cn/6-32267-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 变压器那些事
- 下一篇: Git 案例(企业如何使用git开发项目)