首先定义队列:
typedef struct student{ int data; struct student *next; }node; 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没有队尾,则为空 //就让s成为他的队尾 和队头 HQ->first=s; HQ->rear=s; }else{ //先让队尾的下一个元素指向s //将 s变为现在的队尾 HQ->rear->next=s; HQ->rear=s; } return HQ; }
定义删除操作:
queue *del (queue *HQ){ int x; if(HQ->first==NULL){ cout<<"队列为空,无元素移除"<<endl; } else{ x=HQ->first->data; //判断是否只有一个元素 if(HQ->first==HQ->rear){ HQ->first=NULL; HQ->rear=NULL; }else{ HQ->first=HQ->first->next; } } return HQ; }
以上即为实现