#include <iostream>
using namespace std;
const int MaxSize = 100;
template<class DataType>
struct Node
{ public:
DataType data;
Node<DataType>* next;//节点后继指针
};
template <class DataType>
class LinkQueue
{
public:
LinkQueue();//无参构造一个链队列
void EnQueue(DataType x);//将x入队列 将x赋予一个新节点的值域 再将节点插在头结点后面 一般不去动头指针 动尾指针
DataType deQueue();//出队列
private:
Node<DataType>* front,rear;
};
template<class DataType> LinkQueue<DataType>::LinkQueue()
{
//生成一个头结点 记得置0 还有将头尾指针指向头结点
Node<DataType>* s = new Node<DataType>();
s->next = NULL;
front = s;
rear = s;
}
template<class DataType> void LinkQueue<DataType>::EnQueue(DataType x)
{
Node<DataType>* s = new Node<DataType>();
s->data = x;
rear->next = s;
rear = s;
}
template<class DataType> DataType LinkQueue<DataType>::deQueue()
{
Node<DataType>* q = front->next;
int x = q->data;
front->next = q->next;
if(q->next == NULL)
{
rear = front;
}
delete q;
return x;
}
using namespace std;
const int MaxSize = 100;
template<class DataType>
struct Node
{ public:
DataType data;
Node<DataType>* next;//节点后继指针
};
template <class DataType>
class LinkQueue
{
public:
LinkQueue();//无参构造一个链队列
void EnQueue(DataType x);//将x入队列 将x赋予一个新节点的值域 再将节点插在头结点后面 一般不去动头指针 动尾指针
DataType deQueue();//出队列
private:
Node<DataType>* front,rear;
};
template<class DataType> LinkQueue<DataType>::LinkQueue()
{
//生成一个头结点 记得置0 还有将头尾指针指向头结点
Node<DataType>* s = new Node<DataType>();
s->next = NULL;
front = s;
rear = s;
}
template<class DataType> void LinkQueue<DataType>::EnQueue(DataType x)
{
Node<DataType>* s = new Node<DataType>();
s->data = x;
rear->next = s;
rear = s;
}
template<class DataType> DataType LinkQueue<DataType>::deQueue()
{
Node<DataType>* q = front->next;
int x = q->data;
front->next = q->next;
if(q->next == NULL)
{
rear = front;
}
delete q;
return x;
}