队列入队/出队列

#include<iostream>
using namespace std;

//定义一个结点类型
typedef struct node
{
 int data;
 node* next;
}queuenode;

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

//队列入队
queue *insert(queue *HQ,int x)
{
 queuenode *s=new queuenode[sizeof(queuenode)];
 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)
{
 queuenode *p=new queuenode[sizeof(queuenode)];
 int x;
 if(HQ->first==NULL)
 {
  cout<<"queue is empty"<<endl;
  return NULL;
 }
 x=HQ->first->data;
 p=HQ->first;
 if(HQ->first==HQ->rear)
 {
  HQ->first=NULL;
  HQ->rear=NULL;
 }
 else
 {
  HQ->first = p->next;
  delete p;
 }
 return HQ;
}

原文地址:https://www.cnblogs.com/fuyanan/p/3354639.html