队列
队列的数据结构
队列,先进先出,队尾进,队首出,可以用链表实现。
用C语言实现队列
#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
int number;
struct Node *next;
}Node;
typedef struct Queue{
Node *head;
Node *tail;
}Queue;
void init(Queue &queue){
queue.head=(Node *)malloc(sizeof(Node));
queue.tail=queue.head;
queue.head->next=NULL;
}
void EnQueue(Queue &queue,int element){
Node *p=(Node *)malloc(sizeof(Node));
p->next=NULL;
p->number=element;
queue.tail->next=p;
queue.tail=p;
}
bool isEmpty(Queue &queue){
return queue.head==queue.tail;
}
void DeQueue(Queue &queue,int &element){
if(isEmpty(queue)){
printf("队列为空");
return;
}
Node *p=queue.head->next;
element=p->number;
queue.head->next=p->next;
if(queue.tail==p){
queue.tail=queue.head;
}
free(p);
}
int main(){
Queue queue;
init(queue);
for(int i=0;i<102;i++){
EnQueue(queue,i);
}
int element=0;
while(1){
if(isEmpty(queue)){
break;
}else{
DeQueue(queue,element);
printf("%d ",element);
}
}
return 1;
}