Q3.5 Implement a MyQueue class which implements a queue using two stacks.

队列实现栈 | 栈实现队列 队列实现栈 | 栈实现队列 ⼀、 ⽤栈实现队列 首先,队列的 API 如下: class MyQueue { /** 添加元素到队尾 */ public void push(int x); /** 删除队头的元素并返回 */ public int pop(); /** 返回队头元素 */ public int peek(); /** ... 阅读详情

Q:Implement a MyQueue class which implements a queue using two stacks.

A:一个栈sin用于进,一个栈sout用于出。

push:直接push进sin即可

pop: 如果sout不空,直接pop,否则将sin中的元素都压入sout之后再sout.pop

front: 同pop,只不过不pop,而是top

back:同front, 如果sin不为空,直接sin.top(),否则将sout元素都压入sin, 再sin.pop

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

template <typename T>
class MyQueue{
	private:
		stack<T> sin, sout;
	
	public:
		MyQueue() {
		}
		
		~MyQueue() {
		}
		
	void push(T val){
		sin.push(val);
    }
    
    void pop(){
    	move(sin, sout);
    	sout.pop();
    }
    
    T front(){
		move(sin, sout);
		return sout.top();
    }
    
    T back(){
		move(sout, sin);
		return sin.top();
    }
    
    int size(){
		return sin.size()+sout.size();
    }
    
    bool empty(){
		return sin.empty()&&sout.empty();
    }
    
    void move(stack<T> &src, stack<T> &dst){
    	while (dst.empty()) {
    		while (!src.empty()) {
    			dst.push(src.top());
    			src.pop();
    		}
    	}
    }
};

int main() {
	MyQueue<int> q;
    MyQueue<int> q1;
    for(int i=0; i<10; ++i){
        q.push(i);
        q1.push(i);
    }

    cout<<q.front()<<" "<<q.back()<<endl;
    cout<<q1.front()<<" "<<q1.back()<<endl;
    cout<<endl;
    q.pop();
    q1.pop();
    q.push(10);
    q1.push(10);
    cout<<q.front()<<" "<<q.back()<<endl;
    cout<<q1.front()<<" "<<q1.back()<<endl;
    cout<<endl;
    cout<<q.size()<<" "<<q.empty()<<endl;
    cout<<q1.size()<<" "<<q1.empty()<<endl; 
	return 0;
}


电子设计实战:用MOS管手把手搭建D触发器电路(含时序分析避坑指南) 本文详细介绍了如何使用MOS管从零开始搭建D触发器电路,重点解析了建立时间和保持时间等关键时序参数对电路稳定性的影响。通过实测波形分析和避坑指南,帮助电子工程师掌握D触发器的实际搭建技巧与优化方法,提升数字电路设计的可靠性。 阅读详情

相关推荐

大数据课程综合实验案例:网站用户行为分析

大数据课程综合实验案例1 案例简介1.1 案例目的1.2 适用对象1.3 时间安排1.4 预备知识1.5 硬件要求1.6 软件工具1.7 数据集1.8 案例任务1.9 实验步骤2 本地数据上传到数据仓库Hive2.1 实验数据集的下载2.2 数据集的预处理(1)删除文件第一行记录,即字段名称(2)对字段进行预处理(3)导入数据库3 Hive数据分析3.1 操作Hive3.2 简单查询分析3.3 查询条数统计分析3.4 关键字条件查询分析3.4.1 以关键字的存在区间为条件的查询3.4.2 关键字赋予给定值为

weixin_44616879的博客 1万+

QUESTION 220- row-archival management is enabled

Which two statements are true when row-archival management is enabled? A. The ORA_ARCHIVE_STATE column may only be updated by users with the DBA role set. B. The ORA_ARCHIVE_STATE column is updated in an overnight maintenance job based on activity ..

jisen_huang的专栏 468

从零到一:RV1126与IMX415的硬件交响曲——深入解析Linux IPC摄像头的硬件调试艺术

本文深入解析了RV1126与IMX415组合的Linux IPC摄像头硬件调试技术,涵盖硬件接口检查、设备树配置、驱动加载验证及ISP调优等关键步骤。通过详细的操作指南和常见问题解决方案,帮助开发者快速掌握摄像头调试技巧,提升开发效率。

weixin_29161785的博客 978

Java数据结构 - 队列与MyQueue

队列是只允许在一端进行插入操作,而在另一端进行删除操作的线性表,队列中的元素遵循(First In First Out)原则。允许插入的一端称为队尾,允许删除的一端称为队头。

Jiali的博客 581

Oracle Primavera P6实战手册:从入门到精通的企业项目管理秘籍

本文详细介绍了Oracle Primavera P6在企业项目管理中的实战应用,从环境配置到高级进度控制技巧,帮助用户从入门到精通。通过WBS设计、资源优化和情景模拟等核心功能,提升项目管理效率。特别适合需要处理复杂项目和多团队协作的企业用户。

weixin_29235923的博客 253

STM32与SD卡SPI接口硬件设计:从原理图到调试的完整指南

SPI(串行外设接口)作为一种广泛应用的同步串行通信协议,以其接线简单、驱动成熟的特点,成为连接微控制器与各类外设的经典方案。其工作原理基于主从架构,通过时钟、数据线和片选信号实现全双工通信,在嵌入式系统中具有极高的技术价值,常用于连接传感器、存储设备和显示模块等。在数据存储场景中,SD卡凭借其大容量和便携性成为首选,而通过SPI模式驱动SD卡,则平衡了性能与设计复杂度。本文聚焦于使用Altium Designer进行硬件设计的工程实践,详细解析了STM32微控制器与SD卡通过SPI通信时,电源管理、上拉电

weixin_34101784的博客 555

【17】Implement a MyQueue class which implements a queue using two stacks

Question:Implement a MyQueue class which implements a queue using two stacks package CareerCup; public class MyQueue { private Stack s1; private Stack s2; public MyQueue(){} public void enque

Coding 610

IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

自从召集2020届校招同行加入新建立的“IC/FPGA校招笔试面试交流群“,见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知识的理解更加深刻了。 对于建立时间而言,从单独的对触发器的建立时间和保持时间的分析到了对电路(系统)的建立时间到保持时间的分析,前者是核心,后者是扩展,后者建立在前者的基础之上进行推到得到,同时也是芯片内部实际遵循的时...

Reborn Lee 1万+

ADT 队列 queue

//用线性表 实现循环队列。。               #include using namespace std; #define MAX_SIZE 100 //用线性表实现循环队列 class myqueue { private: int term[MAX_SIZE]; int front,rear; public : myqueue(); bool is_empty

我多么希望明天有太阳,来灼烧我腐烂的梦想 1447

华为OD机试双机位C卷-简单的解压缩算法(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【简单的解压缩算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD真题【简单的解压缩算法】。

qq_45776114的博客 475

图机器学习(2)——图的可视化

图结构可通过图形化方式直观呈现。节点通常用圆形表示,边则用连接线表示。然而当节点和边数量增加时,绘制清晰的图形表示可能会变得相当困难,这主要源于节点在二维坐标系中的布局问题。对于包含数百个节点的图,手动指定每个节点的坐标显然不切实际。在本节中,我们将介绍如何在不指定每个节点坐标的情况下绘制图形。我们将利用两种不同的解决方案:networkx 和 Gephi。

盼小辉丶的博客 8739

队列——顺序队列

队列(queue)首先和栈一样是受限制的线性表。 主要是仅允许在表的一端进行增加数据,在表的另一端删除数据。 队列删除的数据的一端被称为队首(front),增加数据的一端被称为队尾(rear) 在队首删除数据叫做出队,在队尾增加数据叫做入队。 所以其一大特点是先进先出。                                     package 队列的实现; pub...

MADE_哒哒 248

智能挂锁软件需求规格说明书(SRS)

智能挂锁系统SmartPadlockV1.0是一款融合蓝牙通信、指纹识别和远程控制技术的便携式安防设备。系统由设备端、移动App和云平台三部分组成,支持蓝牙配对(10米内)、指纹识别、OTP一次性密码等多种开锁方式,响应时间<1.5秒。产品采用SM2/SM4加密技术保障安全,日均20次使用下续航达180天,兼容iOS13+/Android8.0+系统。功能包括设备绑定、远程授权、开锁记录查询和OTA固件升级,符合个人信息保护法规要求,适用于仓储、快递柜等多场景应用。

moton2017的博客 2112

MyQueue队列的 数组实现

package implement; public class MyQueue&lt;T&gt; {//基于数组实现 private int size ;//记录队列的大小 private T [] queue ; private int head;//队头 private int end;//队尾 public MyQueue() { } public MyQueue(...

woyixinyiyi的博客 2132

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

星期二『51-100』

Q.51Which two statements are true when row-archival management is enabled?A. The ORA_ARCHIVE_STATE column is updated manually or by a program that can reference activity tracking columns,    to indica...

u012887743的博客 2061

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java实现队列MyQueue,底层使用链表实现

/** * 队列的接口 * 队列是一种先进先出的数据结构 * 队列支持的操作: * 判断队列是否为空 * 判断队列是否已经满了 * 查看队列已经有多少元素 * 将一个元素入队 * 将一个元素出队 * 查看队头的元素,但不出队 * 队列在底层可以用数组实现,也可以用链表实现 * 但不管实现方式如何,都必须满足此接口中的规定 */ public interface MyQueu...

Yangziqi_usst的博客 694

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

[CareerCup] 3.5 Implement Queue using Two Stacks 使用两个栈来实现队列

3.5 Implement a MyQueue class which implements a queue using two stacks. LeetCode上的原题,请参见我之前的博客Implement Queue using Stacks 用栈来实现队列。 本文转自博客园Grandyang的博客,原文链接:使用两个栈来实现队列[CareerCu...

weixin_34409357的博客 164

OCP-1Z0-053-V12.02-382题

382.Which of the following can be used in conjunction with a Flashback Versions Query to filter the results? (Choose all that apply.) A. A range of SCN values B. A list of SCN values C. A start

一抹曦阳-Oracle 5441

46.Which two statements are true about the Automatic Database Diagnostic Monitor (ADDM)? (Choose two

46.Which two statements are true about the Automatic Database Diagnostic Monitor (ADDM)? (Choose two.)

dwj19830118的专栏 1685

64.Which two statements are true about setting the FAST_START_MTTR_TARGET initialization parameter t

64.Which two statements are true about setting the FAST_START_MTTR_TARGET initialization parameter to a nonzero value? (Choose two.)

dwj19830118的专栏 1553

Implement a queue/stack

Queue: Doubly linked list: #include using namespace std; struct ListNode { int val; ListNode *next, *pre; ListNode(int x) :val(x), next(NULL), pre(NULL) {} }; class Queue { private: Lis

sunyujia19的专栏 464

星期二男孩问题

先从一个更简单的问题开始, Boy or Girl Paradox: 一、老王有两个孩子,已知其中一个是男孩,求另一个也是男孩的概率? 二、老王有两个孩子,并非两个都是女孩,则两个都是男孩的概率? 这两个问题其实是同一个问题,但第一个的表述,不要与下面的问题混淆: 三、老王有两个孩子,已知先出生的那个是男孩,求后出生的那个也是个男孩的概率? 无论如何,只要转换成数学语言

Better Explained 6192

队列篇(一)----环形队列的创建与检测(C++版)

创建类声明文件文件  MyQueue.h class MyQueue{ public: MyQueue(int queueCapacity);      //创建队列 virtual ~MyQueue();                      //销毁队列 void ClearQueue();                       //清空队列 bool QueueEmpt

sunyinggang的博客 746

队列(Queue)——class Stack 和 class Stack T 实现

这是对于Queue类的实现 PS:这是队列链式存储(带头节点)的类和模板实现,静态循环序列本质也只是封装类和套模板 class Stack实现代码如下: myqueue.h #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; struct Node {         char data;         Node* next; }; str...

chenchen_fcj程序猿的博客 704

39.Which two statements are true about standard database auditing? (Choose two.)

39.Which two statements are true about standard database auditing? (Choose two.)

dwj19830118的专栏 1338
上一篇: Q.3.4 To solve the problem of hanoi
下一篇: Q3.6 sort a stack in ascending order
「已注销」
博客等级 码龄15年 5粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值