#ifndef linkqueue_H
#define linkqueue_H
struct node
{
int data;
node *next;
};
class linkqueue
{
private:
node *front,*rear;
public:
linkqueue();
~linkqueue();
void enqueue(int x);
int dequeue();
int getqueue();
int empty();
};
#endif
子函数:
#include"linkqueue.h"
#include<iostream>
using namespace std;
linkqueue::linkqueue()
{
node *s;
s=new node;
s->next=NULL;
front=rear=s;
}
linkqueue::~linkqueue()
{
front=rear=NULL;
}
void linkqueue::enqueue(int x)
{
node *s=new node;
s->data=x;
s->next=NULL;
rear->next=s;
rear=s;//将结点s插入到队尾
}
int linkqueue::dequeue()
{
int x;
node *p=new node;
p=front->next;
x=p->data;
front->next=p->next;
return 0;
}
int linkqueue::getqueue()
{
int x;
node *q=new node;
q=front->next;
x=q->data;
return x;
}
int linkqueue::empty()
{
if(front==rear)
return 1;
else
return 0;
}
主函数:
#include<iostream>
using namespace std;
#include"linkqueue.h"
void main()
{
linkqueue q;
if(q.empty())
cout<<"队列为空"<<endl;
else
cout<<"队列非空"<<endl;
cout<<"元素10和15执行入队操作"<<endl;
q.enqueue(10);
q.enqueue(15);
cout<<"查看队头元素:"<<q.getqueue()<<endl;
cout<<"执行出队操作"<<endl;
q.dequeue();
cout<<"查看队头元素:"<<q.getqueue()<<endl;
if(q.empty())
cout<<"队列为空"<<endl;
else
cout<<"队列非空"<<endl;
}