首先定义队列:
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;
}
以上即为实现