队列
队列同栈一样,也是一种特殊的线性表。主要特性是先进先出。
主要函数包括:入列、出列、清空等
主要代码如下:
//测试队列的数据结构
#include <iostream>
using namespace std;
template <class T>
class squeuenode
{
public:
squeuenode(){next=NULL;}
T data;
squeuenode<T> *next;
};
template <class T>
class Myqueue
{
public:
unsigned int squeuelength;
squeuenode <T>*node;
squeuenode <T>*rear;
squeuenode <T>*front;
public:
Myqueue();
unsigned int length();
void push(T x);
bool isempty();
void pop();
T getHead();
};
template <class T>
Myqueue<T>::Myqueue()
{
squeuelength=0;
rear=NULL;
front=NULL;
node=NULL;
}
template <class T>
unsigned int Myqueue<T>::length()
{
return squeuelength;
}
//添加
template <class T>
void Myqueue<T>::push(T x)
{
node=new squeuenode<T>();
node->data=x;
node->next=NULL;
if (front==NULL)
{
front=node;
rear=front;
}
else
{
rear->next=node;
rear=node;
}
squeuelength++;
}
template <class T>
bool Myqueue<T>:: isempty()
{
if (0==squeuelength)
{
return true;
}
else
return false;
}
template <class T>
void Myqueue<T>::pop()
{
if (squeuelength==0)
{
return;
}
if (front==rear)
{
node=front;
front=rear=NULL;
delete(node);
node=NULL;
}
else
{
node=front;
front=node->next;
delete(node);
node=NULL;
}
squeuelength--;
}
template <class T>
T Myqueue<T>::getHead()
{
if (squeuelength==0)
{
cout<<"现在没有任何数据"<<endl;
exit(0);
}
T x;
x=front->data;
return x;
}

浙公网安备 33010602011771号