顺序队列
基本概念
允许插入的一端叫队尾,允许删除的一端叫队头。
入队:在队列中插入元素;出队;空队列
队列也叫先进先出(First In First Out)的线性表。
操作:创建、入队、出队、获取队头数据、判断是否为空、判断是否为满;
STL中有queue容器。
分为顺序存储和链式存储。
顺序存储:用一段连续的内存空间依次存储。
实现代码
#include <iostream>
using namespace std;
#define MaxSize 10//最大容量是10
template <typename T>
class SeqQueue
{
public:
SeqQueue();//构造函数
~SeqQueue();//析构函数
bool EnSeqQueue(const T& e);//入队列(增加数据)
bool DeSeqQueue(T& e);//出队列
bool GetHead(T& e);//获取队头元素
void ClearQueue();//将队列清空
void DisplayQueue();//扫描队列
int Queue();//返回队列长度
bool IsEmpty();//判断队列是否为空
bool IsFull();//判断队列是否已满
private:
T* m_data;//促进方顺序队列中的元素
int m_front;//对头指针(数组下标),允许删除的一端,如果队列不为空,则指向队列头元素
int m_rear;//对尾指针(数组下标),允许插入的一端,如果队列不为空,则指向队列尾元素的下一个元素
};
//通过构造函数来对队列初始化
template <typename