#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "time.h"
typedef struct QNode
{
int data;
struct QNode* next;
}QNode;
typedef struct
{
QNode *front, *rear;
}LinkQueue;
int initQueue(LinkQueue* Q)
{
Q->front = (QNode*)malloc(sizeof(QNode));
Q->rear = Q->front;
Q->front->next = NULL;
return 1;
}
int insertQueue(LinkQueue* Q, int value)
{
QNode* S;
S = (QNode*)malloc(sizeof(QNode));
S->data = value;
Q->rear->next = S;
Q->rear = S;
return 1;
}
int deletQueue(LinkQueue* Q)
{
QNode* S;
if (Q->front == Q->rear)
{
printf("栈队列已空n");
return 0;
}
S = Q->front->next;
Q->front->next = S->next;
if (Q->rear == S)
{
Q->rear = Q->front;
}
free(S);
return 1;
}
int seeQueue(LinkQueue Q)
{
QNode* S;
if (Q.front == Q.rear)
{
printf("栈队列已空n");
return 0;
}
S = Q.front->next;
while (S!=Q.rear->next)
{
printf("%d ", S->data);
S = S->next;
}
printf("n");
return 1;
}
int main()
{
LinkQueue Q;
initQueue(&Q);
for (int i = 0; i < 7; i++)
{
insertQueue(&Q, i);
}
seeQueue(Q);
for (int i = 0; i < 8; i++)
{
deletQueue(&Q);
seeQueue(Q);
}
}