c++ queue 顺序队列的实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ queue 顺序队列的实现相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<cstdlib>
#include<cstdio>

using namespace std;
const int initial_lize=10000;
const int adding_size=2*initial_lize;
template<class T>
struct Queue{
    T * base;
    T * Qhead,*Qbegin,*Qend,*Qfront,*Qtail;
    int front_pos,tail_pos;
    int now_size,whole_size;
    Queue(){
        base=(T *)malloc(sizeof(T)*initial_lize);
        Qhead=base;
        Qbegin=base;Qend=base+(initial_lize-1);
        Qfront=Qtail=base+1;
        front_pos=tail_pos=1;
        now_size=1;
        whole_size=initial_lize;
    }
    bool Empty(){
        if(Qfront==Qtail)   return true;
        else                return false;
    }
    void push(const T x){
        now_size++;
        if(now_size<whole_size){
            *Qtail=x;
            Qtail++;
            tail_pos++;
        }
        else{
            base=(T *)realloc(base,(sizeof(T))*whole_size*2);//别忘了类型转换
            whole_size*=2;
            Qhead=base;Qend=base+(whole_size-1);
            Qfront=base+front_pos;Qtail=base+tail_pos;
            *Qtail=x;Qtail++;tail_pos++;
        }
    }
    T Top(){
        if(!Empty())    return (*Qfront);
        else{
            cerr<<"Queue is empty! can not return any elements"<<endl;
        }
    }
    void pop(){
        if(!Empty()){
            Qfront++;
            front_pos++;
        }
        else{
            cerr<<"Queue is empty! can not pop any elements"<<endl;
        }
    }
    void delete_Queue(){
        free(base);
    }
};


int main(){
//队列的测试
//    Queue<int> que;
//    int temp=0;
//    que.Top();
//    que.pop();
//    for(int i=0;i<10;i++){
//        que.push(i);
//    }
//    for(int i=0;i<10;i++){
//        temp=que.Top();
//        que.pop();
//        cout<<temp<<endl;
//    }
//  que.delet_Queue();


    return 0;
}

  

以上是关于c++ queue 顺序队列的实现的主要内容,如果未能解决你的问题,请参考以下文章

C++容器适配器实现队列Queue的各种功能(入队出队判空大小访问所有元素等)

C++ 初阶优先级队列(Priority_Queue)底层框架模拟实现

C++ 初阶优先级队列(Priority_Queue)底层框架模拟实现

C++ 知识回顾总结 -- queue 队列容器

C++ 知识回顾总结 -- queue 队列容器

C++初阶----deque(双端队列)+stack queue模拟实现