数据结构——栈
本文最后更新于:8 个月前
STL 栈的常用函数、算法题
C++ Stack(栈)
函数
empty | 该函数用于测试堆栈是否为空。如果堆栈为空,则该函数返回true,否则返回false。 |
---|---|
size | 该函数返回堆栈容器的大小,该大小是堆栈中存储的元素数量的度量。 |
top | 该函数用于访问堆栈的顶部元素。该元素起着非常重要的作用,因为所有插入和删除操作都是在顶部元素上执行的。 |
push | 该函数用于在堆栈顶部插入新元素。 |
pop | 该函数用于删除元素,堆栈中的元素从顶部删除。 |
swap | 该函数用于交换引用的两个容器的内容。 |
常见问题
Q1:栈空的时候,使用top访问,或者使用pop会发生什么?
A1:栈空的时候,使用top和使用pop都会发生访问错误,程序会报错终止。
leetcode题库
题目 | 备注 |
---|---|
20.有效的括号(简单) | 简单的匹配前后括号(),{},[] |
32.最长的括号(困难) | 计算最长有效括号,分两种情况:()()和(()),巧妙地利用栈和右括号下标 |
42.接雨水(困难) | 做了两次,第二次还做了两个小时,把问题想复杂化了,虽然细节很多,但是也没有那么多,没有把握住分析思路。 |
71.简化路径(中等) | 标准化输入路径的题目,借鉴编译原理gettoken函数,难点在于需要考虑的情况和细节比较多 |
84.柱状图中最大的矩形(困难) | 单调栈+哨兵(边界加一个特殊值,称为“哨兵”),单调栈常用来求左右边界的问题,分为递增、递减栈,具体选哪个取决于详细情况 |
数据结构——栈
http://timegogo.top/2022/04/02/算法与数据结构/数据结构——栈/