#include<iostream>
#ifndef _Queue
#define _Queue
#define QueueMaxSize 100
template<typename T>
class SqQueueClass{
private:
T *data;
int front, rear;
public:
SqQueueClass();
~SqQueueClass();
bool QueueEmpty();
bool enQueue(const T& e);
bool deQueue(T& e);
};
template<typename T>
class SqQueueClass1{
private:
T *data;
int front, rear;
public:
SqQueueClass1();
~SqQueueClass1();
bool QueueEmpty1();
bool enQueue1(const T& e) ;
bool deQueue1(T& e);
};
template<typename T>
SqQueueClass<T>::SqQueueClass()
{
data = new T[QueueMaxSize];
front = rear = -1;
}
template<typename T>
SqQueueClass<T>::~SqQueueClass()
{
delete []data;
}
template<typename T>
bool SqQueueClass<T>::QueueEmpty()
{
return (front == rear);
}
template<typename T>
bool SqQueueClass<T>::enQueue(const T& e)
{
if(front == QueueMaxSize-1)return false;
front++;
data[front] = e;
return true;
}
template<typename T>
bool SqQueueClass<T>::deQueue(T& e)
{
if(front == rear) return false;
e = data[rear];
rear++;
return true;
}
template<typename T>
SqQueueClass1<T>::SqQueueClass1()
{
data = new T[QueueMaxSize];
front = rear = -1;
}
template<typename T>
SqQueueClass1<T>::~SqQueueClass1()
{
delete []data;
}
template<typename T>
bool SqQueueClass1<T>::QueueEmpty1()
{
return (front == rear);
}
template<typename T>
bool SqQueueClass1<T>::enQueue1(const T& e)
{
if((rear+QueueMaxSize-front)%QueueMaxSize==1) return false;
front++;
data[front] = e;
}
template<typename T>
bool SqQueueClass1<T>::deQueue1(T& e)
{
if(rear == front) return false;
e = data[rear];
rear++;
}
#endif
int main()
{
return 0;
}
顺序队列
最新推荐文章于 2022-12-02 01:36:29 发布