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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM