栈(stack)是限制只在表的一端进行插入和删除运算的线性表
通常称插入、输出的一端叫做栈顶(top),另一端称为栈底(bottom)
头文件stack
定义一个栈:stack<数据类型> 名字;
当栈中没有元素称为空栈
栈是后进先出(last in first out),可以把它看成一个水桶,后放入的球最先被取出来,简称LIFO表
栈的基本指令
- s.empty():如果是空栈,返回1,否则返回0
- s.pop():移除栈顶元素
- s.push(元素):在栈顶增加元素
- s.size():返回栈中元素数目
- s.top():返回栈顶元素
栈的使用练习
#include<iostream>
#include<stack>
using namespace std;
stack <int> s;
int main()
{
s.push(1);
s.push(10);
s.push(7);
while (!s.empty())
{
cout << s.top()<<" ";
s.pop();
}
}
1354:括弧匹配检验
题目描述
http://ybt.ssoier.cn:8088/problem_show.php?pid=1354
(老是审核不过就因为这题)
输入
输入仅一行字符(字符个数小于255)。
输出
匹配就输出 “OK” ,不匹配就输出“Wrong”。
样例输入
[(])
样例输出
Wrong
#include<iostream>
#include<stack>
using namespace std;
stack <char> s;
string a;
int main()
{
cin >> a;
for (int i = 0; i <= a.size(); i++)
{
if (a[i] == '(')s.push('(');
if (a[i] == '[')s.push('[');
if