#include"iostream"
#include"stdlib.h"
using namespace std;
typedef struct QueueNode{
int stu_num;
QueueNode* next;
};
typedef struct QueueHead{
QueueNode *front;
QueueNode *rear;
}QueueHead;
void initQueue(QueueHead *&q){
q=(QueueHead *)malloc(sizeof(QueueHead));
q->front=q->rear=NULL;
}
void insertQueue(QueueHead *q,int a){
QueueNode *qn=(QueueNode*)malloc(sizeof(QueueNode));
qn->stu_num=a;
qn->next=NULL;
if(q->front==NULL){
q->front=q->rear=qn;
}
else{
q->rear->next=qn;
q->rear=qn;
}
}
int deleteQueue(QueueHead *q,int &data){
if(q->front==NULL) return 0;
else{
QueueNode *d=q->front;
q->front=d->next;
data=d->stu_num;
free(d);
return 1;
}
}
int searchQueue(QueueHead *q,int e){
QueueNode *p=q->front;
int i=0;
while(p!=NULL){
if(p->stu_num==e){
return ++i;
}
else{
p=p->next;
i++;
}
}
return 0;
}
int main(){
QueueHead *q;
initQueue(q);
int data;
int i;
insertQueue(q,2);
insertQueue(q,1);
insertQueue(q,5);
i=searchQueue(q,5);
if(i!=0) cout<<i<<endl;
deleteQueue(q,data);
cout<<data<<endl;
i=searchQueue(q,5);
if(i!=0) cout<<i<<endl;
return 0;
}
输出结果:
3
3
2