采用c语言实现基础的队列操作
#include<stdio.h>
#include<stdlib.h>
typedef struct linkNode
{
int data;
struct linkNode *next;
}linkNode;
typedef struct linkQueue
{
linkNode * front,*rear;
}linkQueue;
void initLinkQueue(linkQueue *p){
p->front=p->rear=(linkNode *)malloc(sizeof(linkNode));
p->front->next=NULL;
}
void entryQueue(linkQueue *p,int number){
linkNode *temp = (linkNode*)malloc(sizeof(linkNode));
temp->data=number;
p->rear->next=temp;
p->rear=temp;
}
int DeleteQueue(linkQueue *p){
if(p->rear==p->front){
return -1;
}
linkNode *temp = p ->front->next;
int number = temp->data;
p->front->next = temp->next;
if(temp ==p->rear){
p->rear=p->front;
}
free(temp);
return number;
}
int IsEmpity(linkQueue *p){
if(p->rear==p->front){
return 1;
}
else{
return -1;
}
}
int main(){
linkQueue queue;
initLinkQueue(&queue);
for(int i=0;i<=19;i+=2){
entryQueue(&queue,i);
}
while(IsEmpity(&queue)!=1){
printf("%d ",DeleteQueue(&queue));
}
}