数据结构-栈超详解

一种先进后出的数据结构。

复杂度单次通常为 O ( 1 ) O(1) O(1)

用途:括号匹配,倒序问题等

例子:

序列A:{1,2,3,4,5}依次入栈再同一出栈,顺序为A':{5,4,3,2,1}

代码:

插入:

cpp 复制代码
void insert(int x){
	st[++top]=x;
} 

删除:

cpp 复制代码
void erase(int x){
	--top;
}

查找栈首:

cpp 复制代码
int Top(){
	return st[top];
}

括号匹配。

每次如果搜到) 判断栈头是否为 ( 即可。例子

(((())))

步骤:
  1. 搜到 ( 入栈
  2. 搜到 ( 入栈
  3. 搜到 ( 入栈
  4. 搜到 ( 入栈
  5. 搜到 ) 判断栈首为 ) 弹出栈首
  6. 搜到 ) 判断栈首为 ) 弹出栈首
  7. 搜到 ) 判断栈首为 ) 弹出栈首
  8. 搜到 ) 判断栈首为 ) 弹出栈首
  9. 最后栈空说明是一个匹配的括号序列

代码:

cpp 复制代码
#include<iostream>

using namespace std;
const int N=1e5+5;
char st[N];
int top=0;
int main(){
	string s;
	cin>>s;
	for(auto c:s){
		if(c=='('){
			st[++top]=c;
		}else{
			if(st[top]=='('){
				--top;
			}else{
				cout<<"No";
				return 0;
			}
		}
	}
	if(top==0){
		cout<<"Yes";
	}else{
		cout<<"No";
	}
	return 0;
}
相关推荐
数智工坊29 分钟前
【数据结构-排序】8.2 冒泡排序-快速排序
数据结构
芝士爱知识a1 小时前
[2026深度测评] AI期权交易平台推荐榜单:AlphaGBM领跑,量化交易的新范式
开发语言·数据结构·人工智能·python·alphagbm·ai期权工具
芝士爱知识a1 小时前
【FinTech前沿】AlphaGBM:重塑期权交易的智能分析引擎——从原理到实践
数据结构·数据库·人工智能·alphagbm·期权
EE工程师2 小时前
数据结构篇 - 循环队列
数据结构
俩娃妈教编程2 小时前
洛谷选题:P1420 最长连号
数据结构·算法
二年级程序员3 小时前
单链表算法题思路详解(上)
c语言·数据结构·c++·算法
wangluoqi3 小时前
c++ 数据结构-树状数组、线段树 小总结
开发语言·数据结构·c++
化学在逃硬闯CS3 小时前
Leetcode111. 二叉树的最小深度
数据结构
重生之后端学习4 小时前
230. 二叉搜索树中第 K 小的元素
java·数据结构·算法·深度优先
星火开发设计5 小时前
类模板:实现通用数据结构的基础
java·开发语言·数据结构·c++·html·知识