题解 | #【模板】循环队列#

【模板】循环队列

https://www.nowcoder.com/practice/0a3a216e50004d8bb5da43ad38bcfcbf

#include <iostream>
using namespace std;
#include<algorithm>
#include <string>
class stack{
    private:  
        int n=0;  
        int s[100000];
        int top=-1;
    public:
        void push(int x,int n)
        {
            if(top<n-1)
            {
                top++;
                s[top]=x;
            }
            else
            {
                cout<<"full"<<endl;
            }
        }
        void pop()
        {
            if(top>=0)
            {
                cout<<s[0]<<endl;
                for(int i=0;i<top;i++)
                {
                    s[i]=s[i+1];
                }
                    top--;
            }
            else cout<<"empty"<<endl;           
        }
        void front()
        {
            if(top>=0)
            {
                cout<<s[0]<<endl;
            }
            else cout<<"empty"<<endl;
        }
};

int main() {
    // int a, b;
    // while (cin >> a >> b) { // 注意 while 处理多个 case
    //     cout << a + b << endl;
    // }
    stack s;
    int n=0;
    int q=0;
    cin >>n;
    cin>>q;
    for(int i=0;i<q;i++)
    {
        string op;
        cin>>op;
        if(op=="push")
        {
            int a=0;
            cin>>a;
            s.push(a,n);
        }
        if(op=="pop")
        {
            s.pop();
        }
        if(op=="front")
        {
            s.front();
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

11-08 17:36
诺瓦科技_HR
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务