数据结构——顺序队列的C++实现

来源:互联网 发布:java发送socket请求 编辑:程序博客网 时间:2024/05/24 04:28

peSqQueue.cpp

#include "peSqQueue.h"typedef int Statue;#define SQQUEUE_STATUE_SUCCESS0#define SQQUEUE_STATUE_ERROR1  template<class T> class peSqQueue{public:peSqQueue(int size);~peSqQueue(void);T* data;int QueueSize;//队列最大长度int front;//头指针int rear;//尾指针int GetQueueLen(void);Statue Insert(T e);Statue Delete(void);Statue Delete(T* e);};template<class T>peSqQueue<T>::peSqQueue(int size){data = new T[size];front = 0;rear = 0;QueueSize = size;}template<class T>peSqQueue<T>::~peSqQueue(void){delete[] data;}template<class T>int peSqQueue<T>::GetQueueLen(void){return ((rear - front + QueueSize) % QueueSize);}template<class T>Statue peSqQueue<T>::Insert(T e){if(((rear + 1) % QueueSize) == front){return SQQUEUE_STATUE_ERROR;}//((rear + 1) % QueueSize) == frontdata[rear] = e;rear = (rear + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}template<class T>Statue peSqQueue<T>::Delete(void){if(front == rear){return SQQUEUE_STATUE_ERROR;}//front == rearfront = (front + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}template<class T>Statue peSqQueue<T>::Delete(T* e){if(front == rear){return SQQUEUE_STATUE_ERROR;}//front == rear*e = data[front];front = (front + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}
Main.cpp

#include <iostream>  #include "peSqQueue.cpp"using namespace std;    int main()  {  peSqQueue<int> Squeue(11);Squeue.Insert(1);Squeue.Insert(3);Squeue.Insert(5);Squeue.Insert(7);Squeue.Insert(9);Squeue.Insert(11);Squeue.Insert(13);Squeue.Insert(15);Squeue.Insert(17);Squeue.Insert(19);Squeue.Delete();Squeue.Delete();Squeue.Delete();      int len = Squeue.GetQueueLen();cout << "the length of SqQueue:" << len << endl;cout << "Printf the SqQueue:" << endl;if(Squeue.rear < Squeue.front){for(int i = Squeue.front; i < len; ++i){cout << Squeue.data[i] << endl;}//ifor(int j = 0; j < Squeue.rear; ++j){cout << Squeue.data[j] << endl;}//j}//Squeue.rear < Squeue.frontelse{for(int i = Squeue.front; i < Squeue.rear; ++i){cout << Squeue.data[i] << endl;}//i}system("pause");      return 0;  }

程序运行结果:


0 0
原创粉丝点击