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

【模板】循环队列

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

#include<iostream>
#include<string>
using namespace std;
class Dequeue{
    private:
        int *data;
        int rear,Front;
        int count,size;
    public:
        Dequeue(int capacity);
        ~Dequeue();
        void push(int e);
        void front();
        void pop();
        bool isEmpty();
        bool isFull();
};
Dequeue::Dequeue(int capacity){
    data=new int[capacity];
    size=capacity;
    count=0;
    Front=rear=0;
}
Dequeue::~Dequeue(){
    delete[] data;
}
void Dequeue::push(int e){
    if(isFull()){
        cout<<"full"<<endl;
        return;
    }
    data[rear]=e;
    rear=(rear+1)%size;
    count++;
}
void Dequeue::front(){
    if(isEmpty()){
        cout<<"empty"<<endl;
        return;
    }
    cout<<data[Front]<<endl;
}
void Dequeue::pop(){
    if(isEmpty()){
        cout<<"empty"<<endl;
        return;
    }
    cout<<data[Front]<<endl;
    count--;
    Front=(Front+1)%size;
}
bool Dequeue::isFull(){
    return count==size;
}
bool Dequeue::isEmpty(){
    return count==0;
}
int main()
{
    int n,q,x;
    cin>>n>>q;
    Dequeue m(n);
    string t;
    for(int i=0;i<q;i++){
        cin>>t;
        if(t=="push"){
            cin>>x;
            m.push(x);
        }
        else if(t=="front"){
            m.front();
        }
        else if(t=="pop"){
            m.pop();
        }
    }
}
全部评论

相关推荐

2025-12-01 15:04
吉首大学 后端工程师
冲鸭2024:亚信不去也罢
投递亚信科技(中国)有限公司等公司8个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务