构造函数:初始化一个空队列
入队:申请一个结点,将结点插入队尾
出队:暂存对头元素,将其所在结点摘链
#include
using namespace std;
struct Node
{
int data;
Node *next;
};
class linkqueue
{
public:
linkqueue();
~linkqueue();
void enqueue(int x);
int dequeue();
int get();
void print();
int empty()
{
return(front == rear) ? 1 : 0;
}
private:
Node *front, *rear;
};
linkqueue::linkqueue()
{
Node *s;
s = new Node;
s->next = NULL;
front = rear = s;
}
void linkqueue::enqueue(int x)
{
Node *s;
s = new Node;
s->data = x;
s->next = NULL;
rear->next = s;
rear = s;
}
int linkqueue::dequeue()
{
if (rear == front)"下溢";
Node *p;
p = front->next;
int x;
x = p->data;
front->next = p->next;
if (p->next == NULL)rear = front;
delete p;
return x;
}
linkqueue::~linkqueue()
{
while (front != NULL)
{
Node *q;
q = front;
front = front->next;
delete q;
}
}
int linkqueue::get()
{
if (rear == front)"下溢";
Node *p;
p = front->next;
int x = p->data;
delete p;
cout << x << endl;
return 0;
}
void linkqueue::print()
{
Node *p;
p = front->next;
while (p != NULL)
{
cout << p->data;
p = p->next;
}
}
int main()
{
linkqueue a;
a.enqueue(5);
a.enqueue(6);
a.print();
cout << "\n" << endl;
a.dequeue();
a.print();
cout << "\n" << endl;
//a.get();
}