栈的应用

来源:互联网 发布:女生穷游 知乎 编辑:程序博客网 时间:2024/06/03 06:35

进栈顺序为1,2,3……n,给定出栈顺序,输出入栈和出栈操作先后顺序

  1. 栈的性质为先进后出,给定出栈序列,如果一个元素比后面的某些元素小,说明这个元素在后面的这些元素未进栈前已出栈(原理)
  2. 按照输入存储出栈序列
  3. 遍历出栈序列,设置一个max值储存当前最大元素(初始值为0),如果当前遍历元素比max值大,说明比当前元素小的值已入栈,执行a[i]-max个入栈操作,并且执行出栈操作将max值出栈,并使max=a[i],如果比max小,说明说明这个元素在max进栈前已经入栈,只需执行出栈操作即可
#include<cstdio>#include<iostream>using namespace std;int a[105];int main(){    int n;    scanf("%d",&n);    for(int i=0;i<n;i++)    {        scanf("%d",&a[i]);    }    int max=0;    for(int i=0;i<n;i++)    {        if(a[i]>max)        {            for(int j=0;j<a[i]-max;j++)            {                cout<<"A";            }            cout<<"B";            max=a[i];        }        if(a[i]<max)        {            cout<<"B";         }    }
0 0