数组模拟栈

模拟栈

数组模拟栈应用在算法题中,特点是快。我们需要一个数组,和栈顶元素的索引,数组的末尾插入删除是很快的。题目链接

数组模拟栈_第1张图片

代码如下:

#include
#include
using namespace std;

const int N = 1000010;
int st[N];
int tt = -1;//栈顶元素的索引
int m;

int main()
{
    string s;
    int x;
    cin>>m;
    
    while(m--) //m次操作
    {
        cin>>s;
        if(s == "push")//入栈
        {
             cin>>x;
             st[++tt] = x;
       }
        else if(s == "query")
        {
            cout<<st[tt]<<endl; //栈顶元素
        }
        //出栈
        else if(s == "pop")
        {
            tt--;
        }
        else //判断栈为空
        {
            if(tt == -1) cout<<"YES"<<endl;
            else cout<<"NO"<<endl;
        }
   }
    return 0;
}

你可能感兴趣的:(算法基础,c++,模拟栈)