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;
}


手把手教你接入京东购物小程序:从领券到下单的全流程解析 本文详细解析了如何从API申请到领券下单,手把手教你接入京东购物小程序的全流程。涵盖京东联盟账号注册、商品信息获取、优惠券链接转换等关键技术实践,帮助开发者高效实现电商功能集成,提升用户购物体验。 阅读详情

相关推荐

深入解析Linux Suspend/Resume机制——从用户态到内核态的完整流程

本文深入解析Linux Suspend/Resume机制,从用户态触发到内核态执行的完整流程。详细介绍了三种挂起模式(Freeze、Standby、Suspend to RAM)的实现原理,包括系统调用入口、状态验证、设备挂起流程及平台相关操作。同时提供实战调试技巧,帮助开发者解决电源管理中的常见问题。

weixin_29313239的博客 444

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

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

Java数据结构 - 队列与MyQueue

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

Jiali的博客 581

Hyper-V虚拟机 安装 银河麒麟V10桌面版

如何在windows 11 Hyper-V 虚拟机中 安装 银河麒麟V10桌面版。

m0_46756112的博客 3418

SAC安装与相关库文件(.so)的安装

摘要 SAC: Seismic Analysis Code 是用于地震信号处理的一套软件。 本文将介绍SAC的安装,以及安装时遇到的一些问题。主要是一些动态库(lib**.so)找不到的问题。 本文的环境 64位的 Ubuntu 16.04 64位的系统是安装出现问题的主要原因 1. SAC获取与安装 SAC 的安装,只需要解压,然后修改环境变量即可!!!不需要任何编译!!! 1.1. SAC 获取与解压 SAC软件获取地址:http://ds.iris.edu/ds/nodes/dmc/forms/s.

WangCY的博客 4334

【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

OpenMythos深度解析

本文深入解析了kyegomez/OpenMythos项目如何从第一性原理重建Claude Mythos的核心架构。该项目并非直接复制Claude,而是基于公开论文和实验结果推测其可能的设计理念,构建了包含多模态注意力、深度推理引擎、知识检索模块等六大核心组件的模块化架构。重点剖析了分组查询注意力(GQA)的实现细节,展示了KV头扩展等关键技术。该项目已成为大模型开源社区最受关注的研究之一,为理解Claude的架构思想提供了有价值的参考。

Crown_22的博客 518

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

运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案

本文主要介绍了运行codex时出现登录失败:failed to start login server: 以一种访问权限不允许的方式做了一个访问套接字的尝试。 (os error 10013) 解决方案,希望能对使用xx的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

工程师必收藏,Juniper(Junos)网络设备命令大全

不要直接删除配置 → 使用deactivate配置前先修改大配置用出现风险命令一律用写自动化时一律用格式真正会用 Juniper 的工程师,不是命令多,而是命令用得精。

网络技术联盟站 403

队列——顺序队列

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

MADE_哒哒 248

Simulink仿真入门到精通(三) Simulink信号

本系列教程是根据孙忠潇编著的<<Simulink仿真及代码生成技术入门到精通>>学习笔记。 目录 Simulink仿真入门到精通(一) Simulink界面介绍 Simulink仿真入门到精通(二) Simulink模块 Simulink仿真入门到精通(三) Simulink信号 Simulink仿真入门到精通(四) Simulink子系统 Simulink仿真入门到精通(五) Simulink模型的仿真 Simulink仿真入门到精通(六) Simulink模型保存为图片 Sim

king110108的专栏 5395

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

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

星期二『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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

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

Yangziqi_usst的博客 694

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

[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、付费专栏及课程。

余额充值