#include <iostream>
using namespace std;
template <typename T>
class MyQueue{
private:
int head;
int end;
T *p;
int size;
public:
MyQueue(){}
MyQueue(int s):p(new T(s)), size(s){
this->head = 0;
this->end = 0;
}
void addQuere(T q){
int n = (end+size-head)%size;
if(n < size - 1){
*(p+end) = q;
end = (end+1)%size;
return ;
}
cout << "队列已满" << endl;
}
void deleteQueue(){
head += 1;
}
void display(){
int first = head;
while(first != end){
cout << *(p+first) << " ";
first = (first+1)%size;
}
cout << endl;
}
};
int main()
{
MyQueue<int> m1(5);
m1.addQuere(5);
m1.addQuere(6);
m1.addQuere(4);
m1.addQuere(2);
m1.addQuere(1);
m1.display();
m1.deleteQueue();
m1.display();
return 0;
}
C++实现循环队列
最新推荐文章于 2024-10-08 18:38:07 发布