C++ 栈模板题

题目描述

模拟实现一个栈,有 n 个操作,操作包括:

  • 'Push x':在当前栈顶加入一个元素 x
  • 'Pop':输出当前栈顶元素,并令栈顶出栈。

输入格式

从标准输入读入数据。 第一行输入一个正整数 nn<=10^6)。 接下来每行输入一个操作,操作中的元素值均为不大于 10^6 的正整数。

输出格式

输出到标准输出。 对于每个 'Pop' 操作,输出一行。 注意:如果 'Pop' 时栈为空,对该操作输出 '-1' 并不执行出栈操作。

样例 #1

样例输入 #1

6
Push 3
Push 4
Pop
Push 5
Pop
Pop

样例输出 #1

4
5
3

代码实现

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

int main() {
    int n;
    cin >> n;
    
    stack<int> st;
    for (int i = 0; i < n; i++) {
        string op;
        cin >> op;
        
        if (op == "Push") {
            int x;
            cin >> x;
            st.push(x);
        } else if (op == "Pop") {
            if (!st.empty()) {
                cout << st.top() << endl;
                st.pop();
            } else {
                cout << -1 << endl;
            }
        }
    }
    
    return 0;
}

代码分析

  1. 使用 stack 类来模拟栈结构。
  2. 使用循环遍历每个操作,根据操作类型进行不同的处理。
  3. 'Push' 操作:使用 st.push(x) 将元素 x 入栈。
  4. 'Pop' 操作:使用 st.empty() 判断栈是否为空。如果为空,输出 '-1';否则输出栈顶元素并使用 st.pop() 将栈顶元素出栈。

总结

本文通过 C++ 代码模拟实现了栈的基本操作,包括 Push 和 Pop 操作。掌握栈的基本操作对于理解和实现各种数据结构和算法至关重要。

C++ 栈模拟实现:Push 和 Pop 操作

原文地址: https://www.cveoy.top/t/topic/qvU2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录