栈的基本操作(c++题解)

题目描述

栈:插入元素和删除元素只能在线性表的一端进行,所以遵循“先进后出 (LIFO) ”原则,其中插入和删除的一端称为栈顶 (top)。我们可以把栈比喻成一个箱子,只能在箱子的开口处放入和取出物体,而且是后放入的物体,会被先取出来。

输入格式

第 1 行一个整数 n,表示有  条关于n  的操作s,在进行任何操作之前, s是空的。接来的 n 行,每行 一个关于s  的操作,格式和含义如下:

clear:把栈置空。

empty:判断栈是否为空。

push(x):把整数 x 插入栈顶。

pop: 栈顶元素出栈。

top :获取栈顶元素的值。

输出格式

若干行,对应输入中的 top, pop 和 empty 操作:

对于 top 操作,输出一个整数,如果这个操作失败,则输出单词 error。

对于 pop 操作,如果这个操作失败,则输出单词 error。

对于 empty 操作,如果栈是空,则输出 empty,否则输出 not empty。

样例

样例输入
复制8
push 10
top
push 15
pop
top
clear
pop
empty
样例输出
复制10
10
error
empty

_____________________________________________________________________________

日常发作业题解。 

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

_____________________________________________________________________________

#include <bits/stdc++.h>
using namespace std;
int n,idx=0,y;
string x;
int stk[100005];
void push(int x){stk[idx++]=x;
}
int top(){return stk[idx-1];
}
void pop(){idx--;
}
bool empty(){return idx==0;
}
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>x;if(x[0]=='p'&&x[1]=='u'){cin>>y;push(y);}else if(x[0]=='p'){if(idx==0)cout<<"error\n";else pop();}else if(x[0]=='t'){if(idx==0)cout<<"error\n";else cout<<top()<<endl;}else if(x[0]=='e'){if(idx==0)cout<<"empty\n";else cout<<"not empty\n";}else if(x[0]=='c'){idx=0;}}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/641850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目工程下载与XML配置文件下载:EtherCAT超高速实时运动控制卡XPCIE1032H上位机C#开发(十)

XPCIE1032H功能简介 XPCIE1032H是一款基于PCI Express的EtherCAT总线运动控制卡&#xff0c;可选6-64轴运动控制&#xff0c;支持多路高速数字输入输出&#xff0c;可轻松实现多轴同步控制和高速数据传输。 XPCIE1032H集成了强大的运动控制功能&#xff0c;结合MotionRT7运动…

MongoDB之整合SpringBoot

MongoTemplate 方式 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>创建账户 # 切换到数据库 use study # 创建账户 db.createUser({user:&quo…

深度解析Oladance、韶音、南卡开放式耳机:选购指南与天花板级推荐

​随着开放式耳机在日常生活中越来越受欢迎&#xff0c;许多品牌纷纷降低材料品质以迎合大众需求&#xff0c;导致耳机的性能和音质严重下滑。这让消费者在选择优质开放式耳机时感到困惑。作为一名专业的耳机评测人员&#xff0c;我近期对多款热门开放式耳机进行了深入的测评&a…

Leetcode—92.反转链表II【中等】

2023每日刷题&#xff08;八十一&#xff09; Leetcode—92.反转链表II 算法思想 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), n…

kubernetes Pod 异常排查步骤

kubernetes Pod 异常排查步骤 详细排查图查看容器状态查看容器列表容器未启动成功排查容器启动成功排查pod状态对应原因 详细排查图 查看容器状态 查看容器列表 查看容器列表,最好在后面跟上命名空间,不跟上查询出来是默认的 kubectl get pods -n kubesphere-system单独查看某…

【Spring 篇】深入探讨MyBatis映射文件中的动态SQL

MyBatis&#xff0c;这个名字在Java开发者的世界中犹如一道光芒&#xff0c;照亮着持久层操作的道路。而在MyBatis的映射文件中&#xff0c;动态SQL则是一个让人爱-hate的存在。有时候&#xff0c;你感叹它的灵活性&#xff0c;有时候&#xff0c;你可能会为它的繁琐而头痛。但…

【Linux 内核源码分析】内存屏障

内存屏障 内存屏障的作用是强制对内存的访问顺序进行排序&#xff0c;保证多线程或多核处理器下的内存访问的一致性和可见性。通过插入内存屏障&#xff0c;可以防止编译器对代码进行过度优化&#xff0c;也可以解决CPU乱序执行引起的问题&#xff0c;确保程序的执行顺序符合预…

windows 11安装VMware 17 ,VMware安装Ubuntu 20.4

一、下载安装激活VMware 17 下载与激活&#xff1a;Vmware 17 下载地址、最新激活码 2024 _ 注意&#xff1a;安装路径自己选择&#xff0c;路径中尽可能避免中文或空格 二、下载Ubuntu 镜像 下载镜像地址&#xff1a;清华大学开源软件镜像站 点开下载镜像地址&#xff0c;找…

中科星图——Sentinel-2_MSI_L2A数据集

数据名称&#xff1a; Sentinel-2_MSI_L2A 数据来源&#xff1a; Copernicus 时空范围&#xff1a; 2022年10月-2023年1月 空间范围&#xff1a; 全国 数据简介&#xff1a; 哨兵2号&#xff08;Sentinel-2&#xff09;卫星是高分辨率多光谱成像卫星&#xff0c;携带一…

144 两两交换链表中的节点

问题描述&#xff1a;给定一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后的链表。例如[1,2,3,4]变为[2,1,4,3] public ListNode changeNode(ListNode root) { ListNode prenull; ListNode firstChangeroot; ListNode secondChangeroot.next; ListNode r…

腾讯云香港云主机cn2网路线路说明

腾讯云香港轻量线路国际中国电信cn2高速网络。腾讯云轻量服务器电信移动联通三网测速&#xff08;腾讯云中国大陆地域是多线BGP高速线路&#xff0c;所以访问速度不用担心&#xff09;&#xff0c;如果是香港地域的轻量服务器&#xff0c;国内访问会不会绕路呢&#xff1f;阿腾…

负载均衡学习

事情的起因是&#xff0c;服务挂了。。。 发现有个大佬在排查问题的时候用了slb心跳检测 SLB&#xff08;Server Load Balancer&#xff09;的心跳是指SLB服务与后端服务器之间的通信机制。通过心跳机制&#xff0c;SLB可以检测后端服务器的状态&#xff0c;包括是否正常运行、…

51单片机实验课一

实验任务一&#xff1a;实现控制8个发光管的亮&#xff08;灭&#xff09; #include <REGX52.H> void Delay1ms(unsigned int xms) //11.0592MHz {unsigned char i, j;while(xms){xms--;i 12;j 169;do{while (--j);} while (--i);} } void main() {while(1){P20;//八…

分布式一致性算法---Raft初探

读Raft论文也有一段时间了&#xff0c;但是自己总是以目前并没有完全掌握为由拖着这篇博客。今天先以目前的理解程度&#xff08;做了6.824的lab2A和lab2B&#xff09;对这篇论文做一个初步总结&#xff0c;之后有了更深入的理解之后再进行迭代&#xff0c;关于本文有任何疑问欢…

苹果眼镜(Vision Pro)的开发者指南(3)-【3D UI SwiftUI和RealityKit】介绍

为了更深入地理解SwiftUI和RealityKit,建议你参加专注于SwiftUI场景类型的系列会议。这些会议将帮助你掌握如何在窗口、卷和空间中构建出色的用户界面。同时,了解Model 3D API将为你提供更多关于如何为应用添加深度和维度的知识。此外,通过学习RealityView渲染3D内容,你将能…

anaconda环境迁移到另一个服务器

两个服务器上的显卡和cuda的安装都是相同的 利用conda pack迁移环境 &#xff08;本来打算直接复制-粘贴来迁移环境的&#xff0c;但是anaconda文件夹直接有80多G&#xff0c;遂放弃&#xff08;没想到环境竟然可以有这么大的内存&#xff09;。&#xff09; 1.在某一个conda…

【Java数据结构 -- 队列:队列有关面试oj算法题】

队列、循环队列、用队列模拟栈、用栈模拟队列 1.队列1.1 什么是队列1.2 创建队列1.3 队列是否为空和获取队头元素 empty()peek()1.4 入队offer()1.5 出队&#xff08;头删&#xff09;poll() 2. 循环队列2.1 创建循环队列2.2 判断是否为空isEmpty()和满isFull()2.3 入队enQueue…

JAVA的面试题四

1.电商行业特点 &#xff08;1&#xff09;分布式&#xff1a; ①垂直拆分:根据功能模块进行拆分 ②水平拆分:根据业务层级进行拆分 &#xff08;2&#xff09;高并发&#xff1a; 用户单位时间内访问服务器数量,是电商行业中面临的主要问题 &#xff08;3&#xff09;集群&…

python数据分析——numpy基本用法

numpy数据类型 在NumPy中&#xff0c;有多种数据类型可用于表示数组的元素。以下是一些常见的NumPy数据类型&#xff1a; int - 整数类型&#xff0c;如int8、int16、int32、int64等。uint -无符号整数类型&#xff0c;如uint8、uint16、uint32、uint64等。float -浮点数类型…

PaddleNLP 如何打包成Windows环境可执行的exe?

当我们使用paddleNLP完成业务开发后&#xff0c;需要将PaddleNLP打包成在Windows操作系统上可执行的exe程序。操作流程&#xff1a; 1.环境准备&#xff1a; python环境&#xff1a;3.7.4 2.安装Pyinstaller pip install pyinstaller 3.目录结构&#xff0c;main.py为可执…