c++实现数据结构七 顺序循环队列
2013-04-23 10:35
567 查看
template<typename Type> class SeqQueue { private: int rear; //指向队尾 int front; //指向队头 int count; //队列当前的元素个数 int MaxSize; //队列的最大元素个数 Type *pelements; //指向队列元素的指针 public: SeqQueue(int sz): rear(0),front(0),count(0),MaxSize(sz) { pelements = new Type[sz]; if(pelements == NULL) { cout<<"Application error"<<endl; exit(1); } } ~SeqQueue() { delete [] pelements; } public: void MakeEmpty(); bool IsEmpty(); bool IsFull(); bool Append(const Type item); Type Delete(); Type Get(); void Print(); }; template<typename Type> void SeqQueue<Type>::MakeEmpty() { this->front = 0; this->rear = 0; this->count = 0; } template<typename Type> bool SeqQueue<Type>::IsEmpty() { return count == 0; } template<typename Type> bool SeqQueue<Type>::IsFull() { return count == MaxSize; } template<typename Type> bool SeqQueue<Type>::Append(const Type item) { if(count == MaxSize) { cout<<"the queue has been full"<<endl; return false; } pelements[rear] = item; rear = (rear+1) % MaxSize; count++; return true; } template<typename Type> Type SeqQueue<Type>::Delete() { if(count == 0) { cout<<"the queue has been empty"<<endl; exit(1); } Type item = pelements[front]; front = (front+1) % MaxSize; count--; return item; } template<typename Type> Type SeqQueue<Type>::Get() { if( count == 0 ) { cout<<"the queue has been empty"<<endl; exit(1); } return pelements[front]; } template<typename Type> void SeqQueue<Type>::Print() { cout<<"font"; for(int i=0; i<count; ++i) { cout<<"-->"<<pelements[ (front+i) % MaxSize ]; } cout<<"-->rear"<<endl; }
相关文章推荐
- C++实现循环队列之顺序存储
- c++实现顺序循环队列结构,简易队列
- 数据结构之循环队列(顺序表存储)——C++模板类实现
- 顺序循环队列C++实现2倍扩容版本
- 循环顺序队列c++实现
- 循环顺序队列介绍及其C++实现
- C++数据结构之实现循环顺序队列
- c/c++实现顺序循环队列和链式队列
- 以循环顺序表实现的队列ADT(C语言版)
- 采用顺序存储实现循环队列的初始化、入队、出队操作。
- 【c++】模拟实现顺序队列方法二
- 顺序存储实现队列 循环队列 好麻烦
- 静态循环队列C++实现
- c++ queue 顺序队列的实现
- 循环队列——队列的顺序表示和实现
- Java实现链式队列,顺序队列,循环队列
- 数据结构之队列的顺序表示及其实现(循环队列)
- 【c++】模拟实现顺序队列方法一
- 顺序队列之C++实现
- 【c++版数据结构】之循环队列的实现