编程实现队列的入队/出队操作

编程实现队列的入队/出队操作

#include
#include
#include
#include
using namespace std;
//队列的链式存储结构


//结构体的方法定义节点
typedef struct student
{
     int data;
     struct student *next;
}node;

//定义队列linkqueue
typedef struct linkqueue
{
     node *first,*rear;
}queue;

//队列的入队
queue *insert(queue *HQ, int x)
{
     node *s;
     s=(node *)malloc(sizeof(node));
     s->data=x;
     s->next=NULL;
     if(HQ->rear==NULL)
     {
          HQ->first=s;
          HQ->rear=s;
     }
     else
     {
          HQ->rear->next=s;
          HQ->rear=s;
     }
     return(HQ);
}

//队列出队
queue *del(queue *HQ)
{ 
    node *p;int x;
    if(HQ->first==NULL)
    {
        printf("\n yichu");
    }
    else
    {
       x=HQ->first->data;
       p=HQ->first;
       if(HQ->first==HQ->rear)
       {
           HQ->first=NULL;
           HQ->rear=NULL;
       }
       else
       {
          HQ->first=HQ->first->next;
          free(p);
       }
       return(HQ);
    }
    
}