一、顺序队列的实现(LinearQueue.h)
#pragma once
#include<iostream>
using namespace std;
template<class T>
class LinearQueue
{
public:
LinearQueue(int LQMaxSize)//创建空队列
{
MaxSize = LQMaxSize;
element = new T[MaxSize];
size = 0;
front = 0;
rear = 0;
}
~LinearQueue()//删除队列
{
delete[]element;
}
bool IsEmpty()//判断队列是否为空,空返回true,非空返回false
{
return size == 0;
}
bool IsFull()//判断队列是否为满,满返回true,不满返回false
{
return size == MaxSize;
}
bool Insert(const T& x)//入队,在队列尾部插入元素x
{
if (IsFull())
return false;
else
{
element[rear] = x;
rear = (rear + 1) % (MaxSize);
size++;
return true;
}
}
bool GetElement(T& x)//求队头元素的值放入x中
{
if (IsEmpty())
return false;
else
{
x = element[front];
return true;
}
}
bool Delete(T& x)//出队,从队头删除一个元素,并将该元素的值放入x中
{
if (IsEmpty())