建立一个链队列,实现队列的入队和出队操作。


#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;  
}  

猜你喜欢

转载自blog.csdn.net/ab111996/article/details/80169836