加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++简单队列实现

发布时间:2020-12-16 10:49:02 所属栏目:百科 来源:网络整理
导读:#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 ;imaxsize;++ i){ data[i] = 0 ; }
#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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读