C++简单队列实现

#ifndef SEQUEUE_H
#define SEQUEUE_H

#include<iostream>
using namespace std;

class SeQueue{
public:
    SeQueue(int size=defaultMaxsize){
        if(size>0){
            maxsize=size;
            data=new int[maxsize];
            for(int i=0;i<maxsize;++i){
                data[i]=0;
            }
            rear=front=-1;
        }
    }
    //判断队列是否为空
    bool Empty_SeQueue(SeQueue *s);
    //出队
    bool Pop_SeQueue(SeQueue *s,int *x);
    //入队
    int Push_SeQueue(SeQueue *s,int x);
private:
    //认长度
    const static int defaultMaxsize=10;
    //队列元素
    int *data;
    //最大长度
    int maxsize;
    //队首和队尾元素
    int rear,front;
};

bool SeQueue::Empty_SeQueue(SeQueue *s){
    if(s->rear==-1 && s->front==-1){
            return true;
        }else{
            return false;
        }
}

bool SeQueue::Pop_SeQueue(SeQueue *s,int *x){
    if(s->Empty_SeQueue(s)){
        return false;
    }
    *x=s->data[++s->front];
        return true;
}

int SeQueue::Push_SeQueue(SeQueue *s,int x){
    s->data[++s->rear]=x;
    return 1;
}

#endif
#include<iostream>
#include"SeQueue.h"
using namespace std;

int main(){
    int data[10]={7,1,2,3,4,5,6,7,8,9},a;
    int *p=&a;
    SeQueue *s=new SeQueue();
    for(int i=0;i<=5;++i){
        s->Push_SeQueue(s,data[i]);
    }
    if(s->Empty_SeQueue(s)){
        cout<<"入队失败"<<endl;
    }else{
        cout<<"入队成功"<<endl;
    }
    s->Pop_SeQueue(s,p);
    cout<<"出队的元素是:"<<*p<<endl;
    return 0;
}

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...