c++栈的使用方法详细讲解!模拟栈代码在后面

一:概念

今天给大家讲讲关于栈的知识,前面曾经在文章里讲过!接下来详细讲讲!

首先,我们可以了解一下栈,其实栈就像一个大桶,可以往里面添加元素,如图所示

当然,除了可以在里面存储数,也可以添加字符等等,详细讲讲怎样使用!

二:使用 

 首先讲讲怎样进行创建一个栈!

挺简单滴,就像

stack<int>stk;

创建叫做“stk”的数类型变量!

在stack《类型》 名称;

这样定义!

三:各种使用方式

1.push(x):往栈顶压入一个元素x,无返回值,只是放入

2.pop():从栈顶弹出一个元素,栈空时无效,无返回值

3.empty():判断栈是否为空,为空返回true,不为空时返回false,可以放入if中

4.top():返回栈顶元素,栈空时无效

5.size():返回栈内元素数量

四:深入

其实,数组可以和栈互换,用下图了解下关系吧!

好了,做到题目吧!

题目描述:

1. push x – 向栈顶插入一个数 x;
2. pop – 从栈顶弹出一个数;
3. empty – 判断栈是否为空;
4. query – 查询栈顶元素。

现在要对栈进行 M 个操作,其中的每个操作 3 和操作 4 都要输出相应的结果。

输入格式:
第一行包含整数 M,表示操作次数。

接下来 M 行,每行包含一个操作命令,操作命令为push x、pop、empty、query  中的一种。

输出格式:
对于每个empty 和  query 操作都要输出一个查询结果,每个结果占一行。

其中,empty 操作的查询结果为YES 或NO ,query 操作的查询结果为一个整数,表示栈顶元素的值。

样例输入:
10
push 5
query
push 6
pop
query
pop
empty
push 4
query
empty
样例输出:
5
5
YES
4
NO
提示:
1≤M≤100000,
0≤x≤109

所有操作保证合法。

时间限制: 1000ms
空间限制: 256MB

看看题解!

#include <bits/stdc++.h>

using namespace std;
const int N = 100010;
int stk[N], tt;
string cmd;

int main() {
    int n;
    cin >> n;
    while (n--) {
        cin >> cmd;
        if (cmd == "push") {
            int x;
            cin >> x;
            stk[++tt] = x;
        } else if (cmd == "pop")
            tt--;
        else if (cmd == "query")
            printf("%d\n", stk[tt]);
        else if (cmd == "empty") {
            if (tt == 0) printf("YES\n");
            else printf("NO\n");
        }
    }
    return 0;
}

非常简单,但是可以用数组解决,如果你有数组解法,欢迎在评论区输入代码,一起学习! 

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值