九度OJ 1512 用两个栈实现队列 【数据结构】

SillyTavern角色卡制作全攻略:如何用AI还原你喜欢的虚构角色(附三叶完整角色卡JSON) 本文详细介绍了如何使用SillyTavern制作高质量AI角色卡,以《你的名字》中的宫水三叶为例,从角色特征提取、对话风格捕捉到JSON结构优化,全面解析AI角色扮演的创作技巧。通过具体的写作示例和完整角色卡JSON,帮助二次元爱好者和同人创作者实现虚构角色的精准还原与生动互动。 阅读详情

题目地址:http://ac.jobdu.com/problem.php?pid=1512

题目描述:

用两个栈来实现一个队列,完成队列的Push和Pop操作。
队列中的元素为int类型。

输入:

每个输入文件包含一个测试样例。
对于每个测试样例,第一行输入一个n(1<=n<=100000),代表队列操作的个数。
接下来的n行,每行输入一个队列操作:
1. PUSH X 向队列中push一个整数x(x>=0)
2. POP 从队列中pop一个数。

输出:

对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。

样例输入:
3
PUSH 10
POP
POP
样例输出:
10
-1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct node{
    int data;
    struct node * next;
}Node;
 
void Push (Node ** stack, int data){
    Node * p = (Node *)malloc(sizeof(Node));
    if (p != NULL){
        p->data = data;
        p->next = *stack;
        *stack = p;
        //return 1;
    }
    //return 0;
}
 
int Pop (Node ** stack){
    int data;
    Node * p = *stack;
    if (*stack != NULL){
        data = p->data;
        *stack = p->next;
        free (p);
        return data;
    }
    return -1;
}
 
void EnQueue (Node ** Queue1, int data){
    Push (Queue1, data);
}
 
int DeQueue (Node ** Queue1, Node ** Queue2){
    int data;
    if (*Queue2 != NULL){
        data = Pop (Queue2);
        return data;
    }
    else if (*Queue1 != NULL){
        while (*Queue1 != NULL){
            data = Pop (Queue1);
            Push (Queue2, data);
        }
        return Pop (Queue2);
    }
    else
        return -1;
}
 
int main(void){
    int n;
    char operate[5];
    char * push = "PUSH";
    int data;
    Node * queue1 = NULL;
    Node * queue2 = NULL;
     
    scanf ("%d", &n);
    while (n-- != 0){
        scanf ("%s", operate);
        if (strcmp (operate, push) == 0){
            scanf (" %d", &data);
            EnQueue (&queue1, data);
        }
        else{
            printf ("%d\n", DeQueue (&queue1, &queue2));
        }
    }
 
    return 0;
}

参考资料: 何海涛 -- 程序员面试题精选100题(18)-用两个栈实现队列[数据结构]

【实战】小红书笔记爬虫终极指南:模拟滑动加载,抓取图文(2026最新版) 小红书作为国内最大的生活方式分享社区,每天产生海量的图文笔记。对于数据分析、市场调研、竞品分析等需求,爬取小红书公开笔记成为一项常见任务。然而,小红书的反爬机制日益升级——接口加密、动态Token、滑动验证、设备指纹……本文将深入剖析小红书Web端和App端的爬取技术,手把手教你用Python实现模拟滑动加载、自动抓取图文笔记的完整爬虫系统。全文包含大量代码、原理分析和排坑经验,适合有一定爬虫基础的读者进阶学习。目录前言一、小红书反爬机制概览二、环境准备2.1 Python环境2.2 浏览器驱动。 阅读详情

相关推荐

Android应用开发从零到一:基于Kotlin与Jetpack Compose的完整实践指南

移动应用开发的核心在于构建一个架构清晰、可维护且可扩展的应用基础。理解应用架构的原理,如关注点分离和数据驱动UI,是实现高质量应用的关键技术价值。在现代Android开发中,Kotlin语言凭借其空安全特性和协程,能有效提升代码的健壮性与开发效率。Jetpack Compose作为声明式UI框架,代表了UI开发的未来方向,与Kotlin协程深度集成,简化了复杂交互界面的构建。这些技术共同服务于个人任务管理、企业工具等多种应用场景。本文以构建一个完整的个人任务管理应用为例,系统阐述从环境搭建、UI构建、数据持

weixin_32667955的博客 313

栈的实现(C语言)以及如何利用两个栈完成队列(数据结构基础部分)

数据结构中栈的实现 栈是一种先进后出的(Firist In Last Out)FILO的数据结构,他只有一个入口。 Stack允许加入元素、移除元素、取得最顶端的元素。但是除了最顶端之外,栈没有其他方式取得元素。 换而言之,Stack不能遍历。 栈的形式可以想象为枪的弹夹,先进去的子弹(元素)最后打出来(弹出)。 以下为C语言实现栈的功能 #include<stdio.h> #include<stdlib.h> typedef struct node { int nValue;

qq_44552665的博客 460

ABtest描述统计功效

我们在面试数据分析时,常常会问到如何确定样本量的问题,会有一个指标:统计功效(power),或者是1-β 统计功效会影响实验的可信度,甚至会影响实验所需的样本量,要了解统计功效,首先要理解两类统计错误 假如我们做了一个AB实验,且两组用户的数据均值为μ1和μ2,我们会有两个初始假设: H0:两个实验组的数据没有差别(μ1=μ2),这个假设也叫“零假设”,也叫原假设 H1:两个实验组之间的数据存在差别(μ1≠μ2),这个假设也叫“非零假设”,也叫备择假设 定义两类错误: 实验本身没有效应,但我们觉

qq_38134556的博客 903

数据结构和算法:队列和栈

1.顺序循环队列: 1)队空条件:rear=front; 2)队满条件:(rear+1)%maxsize=front 3)进队:rear=(rear+1)%maxsize; 4)出队:front=(front+1)%maxisize; 5)计算长度(rear-front+maxsize...

weixin_33937778的博客 154

如何理解反步法设计控制器?

假设以二阶系统为例,被控对象的系统状态方程为: 基于反步控制的具体方法如下: 1.1步骤一 定义期望状态为xd,状态误差e1,为: e1=x1-xd; 则e1的导数为: 1.2步骤二 定义虚拟控制量为: e2定义为: 1.3步骤三 定义Lyapunov能量函数为: 1.4步骤四 定义总Lyapunov能量函数为: 因此设计的控制律为: 设计c>0,则: 满足Lyapunov的稳定性判定条件...

weixin_42736130的博客 2万+

candence layout快捷键

摁住鼠标左键再框选:选中 摁住鼠标右键再框选:放大 选中之后,滚动鼠标滚轮进行放大缩小。 F:回到全局 shift+V:缩小 键盘的箭头:移动视图 F1:显示帮助文档Candence help F2:保存 点击r,画出矩形时不双击鼠标,点击F3,可以设置尺寸。 Creat-Shape-Path Creat-Wiring-Bus:画多根线。F3设置线宽、间距等。 选中金属后,Shift+G画保护环guard ring。F3可以设置距离金属的间距、保护环的形状。 Path和Rectang

weixin_45861827的博客 2655

python中两种重要的数据结构

冰影随风的专栏 306

1个PID回路如何连接2个执行器(算法和代码)

我们先看下位置型PID的控制框图:2、PID是基于error的控制 所以反馈信号跳动、干扰非常大的话,对PID的闭环控制影响是非常大的,所以对于反馈信号、一定要抗干扰和滤波处理。3、下图是增量型PID的控制框图:4、一个PID输出回路如何连接2个执行器?(有些系统会设置热阀和冷阀才能满足控制要求)。

RXXW_Dor的博客 1811

栈的基本操作和相关练习题

栈 一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操 作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。不含任 何元素的栈称为空栈,同样栈可以分为顺序栈和链栈。 栈的结构:   栈特性:后进先出(LILO)特殊线性表   。 栈功能:将数据从一种序列改变到另一种序列  。 顺序栈的结构c语言描述: typedef struct Stack {     SData...

chenyifei___的博客 975

cesium 淹没分析

cesium淹没分析

God's asylum的博客 481

在ABAQUS中使用VUMAT子程序实现Hashin失效准则的详细解析与实践:深入探讨复合材料模拟仿真的高级编程技巧

Hashin失效准则是由材料科学家Shlomo Hashin于1962年提出的一种基于能量方法的多向失效理论,主要用于预测复合材料的破坏行为。与传统的单向失效理论不同,Hashin准则考虑了材料内部的多种独立破坏机制,如基体断裂、界面脱粘、纤维断裂等,这些机制在不同应力状态下可能同时或分别发生。通过计算各个机制的能量释放率,Hashin失效准则能够更为准确地预测复合材料在复杂应力状态下的破坏行为。

qq_38334677的博客 1949

剑指OFFER之用两个栈实现队列(九度OJ1512)

剑指OFFER之用两个栈实现队列(九度OJ1512) 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。   输入: 每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1&lt;=n&lt;=100000),代表队列操作的个数。接下来的n行,每行输入一个队列操作:1...

xingoo 95

C++ Qt6 QtQuick/QML入门进阶与项目实战视频教程

C++ Qt这些年在PC客户端、嵌入式、汽车座舱仪表等领域应用很广泛,例如剪映专业版、微信4.0、亿图脑图、Steam、美图秀秀、腾讯会议、钉钉(部分模块)等都是使用C++ QWidget/QML开发。特别是QML这种声明式UI开发更加快捷,QML的界面开发效率相对于QWidget更快速,界面效果更好,QtQuick/QML在Qt6版本也逐渐完善了,使用QML进行客户端开发是个不错的选择。

琅嬛福地 4490

九度OJ-题目1512:用两个栈实现队列

题目链接地址: 九度OJ-题目1512:用两个栈实现队列 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中

蜗牛 734

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【九度oj】1512 用两个栈实现队列

原题链接:http://ac.jobdu.com/problem.php?pid=1512 题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1.  PUSH X 向队列中push一个整数x(x>=0) 2.  POP 从队

IronYoung_不惧未来 1455

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

九度OJ1512:用两个栈实现队列

题目链接:http://ac.jobdu.com/problem.php?pid=1512 分析:题目要求用两个栈实现队列的操作,w

Amy的学习之路 772

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【剑指Offer面试编程题】题目1512:用两个栈实现队列--九度OJ

新建栈st1模拟队列的输入,只要遇到push操作,都将元素压入st1中。另外,新建栈st2模拟队列的输出,如果pop操作时,先判断st1是否为空,当st2为空,则将st1的中的所有元素挨个弹出并压入st2中以备输出,这时的st2中的元素的排列正好是当前所有元素的输入的逆序,符合队列的输出顺序;-->>当出现pop操作时,如果st2不为空,这个时候的栈顶元素真好是当前状态的队列的头元素,则直接弹出栈顶元素作为队列的输出。

一路向前 659

【剑指Offer面试题】 九度OJ1512:用两个栈实现队列

题目链接地址: http://ac.jobdu.com/problem.php?pid=1512 看到这道题时,梦回考研现场啊。13年厦大计算机专业课的编程题其中一题就是用两个栈实现队列。当时想了很久,可是写了太多,估计扣了不少分。现在看了剑指offer里的代码区区20行。真心点赞!题目1512:用两个栈实现队列时间限制:1 秒内存限制:128 兆特殊判题:否提交:3103解决:1041 题

牧之 912

九度oj 题目1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案例,打印所有pop操作中从队列

binyuapple的专栏 479

九度OJ 1512 用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案例,打印所有pop操作中从队

阳光心态,健康人生的博客 358

九度OJ_1512:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

VivBin的博客 289

剑指Offer--007-用两个栈实现队列

链接 牛客OJ:用两个栈实现队列 九度OJ:http://ac.jobdu.com/problem.php?pid=1512 GitHub代码: 007-用两个栈实现队列 优快云题解:剑指Offer–007-用两个栈实现队列 牛客OJ 九度OJ 优快云题解 GitHub代码 用两个栈实现队列 1512-用两个栈实现队列 剑指Offe

OSKernelLAB(gatieme) 2924

两个栈实现一个队列

九度OJ1512 http://ac.jobdu.com/problem.php?pid=1512 剑指offer面试题7思路分析两个队列,一个“入栈”inStack,当有数据进入队列时,只往inStack里压栈;一个“出栈”outStack,当有数据出队列时,只能从outStack中出。代码实现使用c++实现#include<cstdio> #include<stack> #include<cs

LONGMANnew的专栏 313

【剑指Offer】题7:用两个栈实现队列

题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 输入: 每个输入文件包含一个测试样例。 对于每个测试样例,第一行输入一个n(1 接下来的n行,每行输入一个队列操作: 1. PUSH X 向队列中push一个整数x(x>=0) 2. POP 从队列中pop一个数。 输出: 对应每个测试案

305
上一篇: 九度OJ 1513 二进制中1的个数
下一篇: 九度OJ 1514 数值的整数次方【算法】
JDPlus
博客等级 码龄15年 221粉丝 125原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值