#include<stdio.h>
#include<stdlib.h>
struct Data
{
int id;
};
struct Node
{
Data data;
Node* next;
};
Node* head = NULL;
struct QNode
{
Node* front;
Node* rear;
};
void in_quene(QNode* quene, Data data);
Data* out_quene(QNode* quene);
int main()
{
QNode* quene = (QNode*)malloc(sizeof(QNode));
quene->front = head;
quene->rear = head;
for (int i = 0; i <= 10; i++)
{
Data temp;
temp.id = i;
in_quene(quene, temp);
}
Data out = *out_quene(quene);
}
void in_quene(QNode* quene,Data data)
{
if (quene->rear)
{
Node* temp = (Node*)malloc(sizeof(Node));
temp->data = data;
temp->next = NULL;
quene->rear->next = temp;
quene->rear = temp;
}
else
{
Node* temp = (Node*)malloc(sizeof(Node));
temp->data = data;
temp->next = NULL;
quene->front = temp;
quene->rear = temp;
}
}
Data* out_quene(QNode* quene)
{
if (quene->front==NULL)
{
printf("队列中没有数据\n");
return NULL;
}
else
{
Node* temp = quene->front;
Data* return_temp = (Data*)malloc(sizeof(Node));
*return_temp = quene->front->data;
quene->front = quene->front->next;
if (quene->front == NULL)
{
quene->rear = NULL;
}
free(temp);
return return_temp;
}
}