C++ 队列

来源:互联网 发布:为什么淘宝网购失效 编辑:程序博客网 时间:2024/05/20 11:20

队列是一种元素遵循先进先出(FIFO)原则的线性结构。是在线性表的基础上实现的,队列要求只能在队尾插入元素,从队首删除元素,插入元素称为入队,删除元素称为出队。

队列的定义:

template<typename datatype>class queue
{
public:
queue(int size)
{
maxsize=size;
front=0;
rear=0;
count=0;
elements=new datatype[size];
if(elements=NULL)
exit(1);
}
~queue()
{
delete[]elements;
}
bool insert(datatype data);
datatype delelement();
private:
int count;
int maxsize;
int front;
int rear;
datatype *elements;
};

入队操作:

template<typename datatype>bool queue<datatype>::insert(datatype data)
{
if(count==maxsize)//判断列表是否已满//
return false;
elements[rear]=data;//从队尾插入数据//
rear=(rear+1)%maxsize;//为节省空间,采用取模方式计算队尾位置//
count++;
return true;

出队操作:

template<typename datatype>datatype queue<datatype>::delelement()
{
if(count==0)//判断列表是否为空//
exit(1);
datatype temp=elements[front];
//从队首拿数据//
front=(front+1)%maxsize;//为节省空间,采用取模方式计算队首位置//
count--;
return temp;

0 0
原创粉丝点击