当前位置: 首页 > article >正文

数据结构 栈 C++ 蓝桥杯

#include<iostream>
#include<stack>
using namespace std;
//  数据结构:
//  数组、字符串、栈、队列、链表、树、图、哈希

//  STL-标准模板库
//  容器:stack栈

int main() {
	//  栈:先进后出、后进先出
	stack<int> stk;
	int n; cin >> n;
	for (int i = 1; i <= n; i++) {
		int x; cin >> x;
		stk.push(x);//入栈,压栈
	}
	while (!stk.empty()) {//当栈stk不为空
		cout << stk.top() << " ";//访问栈顶元素
		stk.pop();//弹出栈顶元素
	}
	return 0;
}

栈stack知识点总结

栈头文件 : include<stack>——导入栈头文件

创建栈:stack<int>stk ——  栈关键字+<栈里元素类型>+栈名字

压栈:stk.push(x) —— 栈名.push(待入栈的量)——从栈顶压入x         

弹栈(出栈):stk.pop() ——栈名.pop()  ——弹出栈顶元素    

判断栈是否为空:stk.empty()——栈名.empty()——栈为为空,返回1,栈不为空,返回0

表达式括号匹配

#include<iostream>
#include<stack>
using namespace std;
int main() {
	//  1.输入一个字符串,循环判断每一个字符
	//  1.1是左括号,进栈
	//	1.2是右括号
	//  2.判断栈是否为空
	//  2.1如果栈为空,不匹配,输出NO
	//  2.2栈不为空,匹配,弹出栈顶元素
	//  3.循环结束后(所有符号扫描完毕),判断栈是否为空
	//  3.1栈为空,所有左右小括号刚好匹配,输出YES
	//  3.2栈不为空,左括号多余,不匹配,输出NO
	stack<int>stk;
	string str; cin >> str;
	for (int i = 0; i < str.size(); i++) {//1.循环判断每一个字符
		if (str[i] == '(') {//1.1是左括号,进栈
			stk.push(i);//这里记的是下标
		}
		else if (str[i] == ')') {//1.2是右括号
			if (stk.empty()) {//2.判断栈是否为空
				cout << "NO" << endl;//2.1如果栈为空,不匹配,输出NO
				return 0;
			}
			else {// 2.2栈不为空,匹配,弹出栈顶元素
				stk.pop();
			}
		}
	}
	//  3.循环结束后(所有符号扫描完毕),判断栈是否为空
	if (stk.empty()) cout << "YES" << endl;//3.1栈为空,所有左右小括号刚好匹配,输出YES
	else cout << "NO" << endl;//3.2栈不为空,左括号多余,不匹配,输出NO
	return 0;
}

//  思路来源:如下图

   思路

    //  1.输入一个字符串,循环判断每一个字符
    //  1.1是左括号,进栈
    //  1.2是右括号
    //  2.判断栈是否为空
    //  2.1如果栈为空,不匹配,输出NO
    //  2.2栈不为空,匹配,弹出栈顶元素
    //  3.循环结束后(所有符号扫描完毕),判断栈是否为空
    //  3.1栈为空,所有左右小括号刚好匹配,输出YES
    //  3.2栈不为空,左括号多余,不匹配,输出NO

完结!!!⠀՞⸝⸝. .⸝⸝՞˳ഒ


http://www.kler.cn/a/532849.html

相关文章:

  • TensorFlow 与 PyTorch 的直观区别
  • 我主编的电子技术实验手册(24)——RL并联电路
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化
  • 10.8 LangChain Output Parsers终极指南:从JSON解析到流式处理的规范化输出实践
  • 【数据结构-Trie树】力扣648. 单词替换
  • ubuntu磁盘扩容
  • unordered_map/set的哈希封装
  • 模型蒸馏原理介绍
  • 驰骋数据源设计与基础概念
  • 洛谷 P1387 最大正方形 C语言
  • 如何安全地管理Spring Boot项目中的敏感配置信息
  • C#中的if判断语句详解
  • DeepSeek本地部署的一些使用体会
  • Linux 系统上安装 Docker 并进行配置
  • OpenAI新商标申请曝光:AI硬件、机器人、量子计算全线布局?
  • 【Linux】解决 apt-key 弃用问题:GPG 直接管理密钥代替 apt-key
  • 蓝桥杯python基础算法(2-2)——基础算法(D)——进制转换*
  • 【异常记录Java-20250204】调用讯飞星火AI(Spark lite 版本)Api 授权错误问题处理
  • 电子电器架构 --- 电子电气架构设计要求与发展方向
  • 【怎么用系列】短视频戒除—1—对推荐算法进行干扰
  • 2.6学习记录
  • 结合深度学习、自然语言处理(NLP)与多准则决策的三阶段技术框架,旨在实现从消费者情感分析到个性化决策
  • Autosar-以太网是怎么运行的?(原理部分)
  • Node.js 调用 DeepSeek API 完整指南
  • java使用pcap4j进行报文发送和接收
  • Go语言指针的解引用和间接引用